Merkwürdiges MYSQL Speicher/Lade Problem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Morgen liebe Community, ich habe seit kurzem ein recht seltsames Problem und zwar ist mir aufgefallen das wenn ich mit einem Charakter auf meinem Server einlogge und spawne mich auslogge und sofort mit einem anderem Account wieder einlogge ich den Geldbetrag den der erste Account eigentlich besitzen sollte jetzt auf dem 2. wieder finde, der erste hat jetzt gar kein Guthaben mehr und ich bin ein wenig ratlos wo dran das liegt.


    Mir ist aufgefallen das dies nur passiert wenn ich mich sehr schnell neu einlogge lasse ich mir dagegen ein wenig Zeit besteht dieses Problem nicht.


    Gespeichert wird fast genau so nur das ich da nur ein Query öffne mit UPDATE wenn mir jemand das ganze für SELECT machen könnte würde ich den lade Prozess ebenfalls auf ein Query reduzieren. Ja ich frage den Wert Geld 2x ab aber da der Wert pGeld zur Zeit noch nicht genutzt wird sondern direkt GivePlayerMoney sollte das nicht relevant sein ist dann halt ein Wert der geladen und später unverändert wieder gespeichert wird.


    Ich hoffe jemand hat eventuell eine Idee wodran es liegen könnte.


    Mfg Zyan


    Geladen wir mit folgendem Code:
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]SpielerInfo[playerid][pName][/i]
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
    GivePlayerMoney(playerid,mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]));
    SpielerInfo[playerid][pAdmin] = mysql_GetInt("accounts", "Admin", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pJob] = mysql_GetInt("accounts", "Job", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pFraktion] = mysql_GetInt("accounts", "Fraktion", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pLeader] = mysql_GetInt("accounts", "Leader", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pBankguthaben] = mysql_GetInt("accounts", "Bankguthaben", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pSkin] = mysql_GetInt("accounts", "Skin", "Name", SpielerInfo[playerid][pName]);


    Zur Vollständigkeit halber auch nochmal der Code zum Speichern:
    new query[400];
    format(query,sizeof(query),"UPDATE `accounts` SET `Level` = '%d', `Geld` = '%d', `Health` = '%d', `Job` = '%d', `Fraktion` = '%d',\
    `Leader` = '%d', `Bankguthaben` = '%d', `Skin` = '%d' WHERE `Name` = '%s'",
    SpielerInfo[playerid][pLevel],
    GetPlayerMoney(playerid),
    SpielerInfo[playerid][pHealth],
    SpielerInfo[playerid][pJob],
    SpielerInfo[playerid][pFraktion],
    SpielerInfo[playerid][pLeader],
    SpielerInfo[playerid][pBankguthaben],
    SpielerInfo[playerid][pSkin],
    SpielerInfo[playerid][pName]
    );
    mysql_query(query);

    3 Mal editiert, zuletzt von Zyankali ()