mysql überträgt nicht richtig in meine variablen

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
  • Hi leute,
    wenn sich der spieler einloggt, werden sein variablen vergeben :
    new spielername[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid,spielername,sizeof(spielername));
    format(string,sizeof(string),"SELECT * FROM `benutzertabelle` WHERE `Benutzername`='%s'",spielername);
    mysql_query(string);
    mysql_store_result();
    mysql_fetch_field("Level",SpielerInfo[playerid][level]);
    mysql_fetch_field("Adminlevel",SpielerInfo[playerid][alevel]);
    mysql_fetch_field("Autoschein",SpielerInfo[playerid][autos]);
    mysql_fetch_field("Motorradschein",SpielerInfo[playerid][motorrads]);
    mysql_fetch_field("Bootsschein",SpielerInfo[playerid][boots]);
    mysql_fetch_field("Flugschein",SpielerInfo[playerid][flugs]);
    mysql_fetch_field("Angelschein",SpielerInfo[playerid][angels]);
    mysql_fetch_field("Waffenschein",SpielerInfo[playerid][waffens]);
    mysql_fetch_field("GeldH",SpielerInfo[playerid][geldh]);
    mysql_fetch_field("GeldB",SpielerInfo[playerid][geldb]);
    mysql_fetch_field("Fraktion",SpielerInfo[playerid][fraktion]);
    mysql_fetch_field("Leader",SpielerInfo[playerid][leader]);
    mysql_free_result();


    So dann habe ich unten zum test nen paar dieser "variablen" auslesen lassen :
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(test,4,cmdtext);
    return 1;
    }


    dcmd_test(playerid,params[]) {
    #pragma unused params
    new string[128];
    format(string,sizeof(string),"test1 = %i test2 = %i test3 = %i test4 = %i teste5 = %i",SpielerInfo[playerid][autos],SpielerInfo[playerid][geldh],SpielerInfo[playerid][geldb],SpielerInfo[playerid][level],SpielerInfo[playerid][alevel]);
    SendClientMessage(playerid,COLOR_GREY,string);
    return 1;
    }


    Aber ingame steht bei den Variablen irgend eine 2 stellige 2 obwohl bei allen außer bei 1 0 stehen sollte...
    hier mal nen screen:




    PS: Habe noch ne frage zu mysql, kann es da nicht zu fehlern kommen wenn 5 leute gleichzeitig online kommen und sich einloggen? Könnte es dann nichtmal passieren, dann vom einen ein Wert (z.B. Geld) beim anderen landet, der sich auch gerade einloggt ?

  • Habe jetzt gehört man muss es so machen : new spielername[MAX_PLAYER_NAME];
    new string[128];
    new level2[MAX_PLAYERS];
    new alevel2[MAX_PLAYERS];
    new autos2[MAX_PLAYERS];
    new motorrads2[MAX_PLAYERS];
    new boots2[MAX_PLAYERS];
    new flugs2[MAX_PLAYERS];
    new angels2[MAX_PLAYERS];
    new waffens2[MAX_PLAYERS];
    new geldh2[MAX_PLAYERS];
    new geldb2[MAX_PLAYERS];
    new fraktion2[MAX_PLAYERS];
    new leader2[MAX_PLAYERS];
    GetPlayerName(playerid,spielername,sizeof(spielername));
    format(string,sizeof(string),"SELECT * FROM `benutzertabelle` WHERE `Benutzername`='%s'",spielername);
    mysql_query(string);
    mysql_store_result();
    mysql_fetch_field("Level",level2[playerid]);
    mysql_fetch_field("Adminlevel",alevel2[playerid]);
    mysql_fetch_field("Autoschein",autos2[playerid]);
    mysql_fetch_field("Motorradschein",motorrads2[playerid]);
    mysql_fetch_field("Bootsschein",boots2[playerid]);
    mysql_fetch_field("Flugschein",flugs2[playerid]);
    mysql_fetch_field("Angelschein",angels2[playerid]);
    mysql_fetch_field("Waffenschein",waffens2[playerid]);
    mysql_fetch_field("GeldH",geldh2[playerid]);
    mysql_fetch_field("GeldB",geldb2[playerid]);
    mysql_fetch_field("Fraktion",fraktion2[playerid]);
    mysql_fetch_field("Leader",leader2[playerid]);
    mysql_free_result();
    SpielerInfo[playerid][level] =strval(level2[playerid]);
    SpielerInfo[playerid][alevel] =strval(alevel2[playerid]);
    SpielerInfo[playerid][autos] =strval(autos2[playerid]);
    SpielerInfo[playerid][motorrads] =strval(motorrads2[playerid]);
    SpielerInfo[playerid][boots] =strval(boots2[playerid]);
    SpielerInfo[playerid][flugs] =strval(flugs2[playerid]);
    SpielerInfo[playerid][angels] =strval(angels2[playerid]);
    SpielerInfo[playerid][waffens] =strval(waffens2[playerid]);
    SpielerInfo[playerid][geldh] =strval(geldh2[playerid]);
    SpielerInfo[playerid][geldb] =strval(geldb2[playerid]);
    SpielerInfo[playerid][fraktion] =strval(fraktion2[playerid]);
    SpielerInfo[playerid][leader] =strval(leader2[playerid]);


    aber jetzt überall immer 0 egal was ich in der Datenbank in die spalten eintrage