Neue Daten *Laden

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
  • Hallo Ich habe ne Frage Ich habe folgendes beim Einloggen:
    dabei werden die Daten des Users geladen:


    else if(rows > 0)
    {
    if(mysql_fetch_row(linee))
    {
    new savingstring[20];
    new data[3][55];
    new data2[5];
    sscanf(linee, "p<|>s[50]s[300]dddds[50]ds[100]", data[0], largestring, data2[0], data2[1], data2[2], data2[3], data[2], data2[4], estring);
    stringempty(estring);
    stringempty(largestring);
    SetPVarInt(playerid, "killss", data2[0]);
    SetPVarInt(playerid, "Logged", 1);
    SetPVarInt(playerid, "deaths", data2[1]);
    SetPlayerScore(playerid, data2[2]);
    GivePlayerMoney(playerid, data2[3]);
    SetPVarInt(playerid, "AdminLevel", data2[4]);
    mysql_fetch_field_row(savingstring, "adminlvl"); PlayerInfo[playerid][adminlvl] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "killss"); PlayerInfo[playerid][killss] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "deaths"); PlayerInfo[playerid][deaths] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "ratio"); PlayerInfo[playerid][ratio] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "logged"); PlayerInfo[playerid][logged] = strval(savingstring);
    SendClientMessage(playerid, COLOR_YELLOW, "Eingeloggt!");
    mysql_free_result();
    GetPlayerIp(playerid, PIP, 18);
    format(Query, sizeof(Query), "UPDATE `playerinfo` SET IP = '%s',`logged` = 1 WHERE user='%s'", PIP, escpname(playerid));
    mysql_query(Query);
    }
    }
    }
    }



    Wie kann Ich da jetzt was neues Laden? Ich möchte zbs "Fische" Laden speicher konnte ich es schon in der Datenbank sind diese unter "fische" gespeichert wie kann ich diese jetzt laden?


    ich versteh nicht ganz was das hier bedeutet:


    sscanf(linee, "p<|>s[50]s[300]dddds[50]ds[100]",


    Ich denke da muss ich sicher was neues setzen weis nur nicht wie :S

  • Also das was du hier erkennen kannst an


    sscanf(linee, "p<|>s[50]s[300]dddds[50]ds[100]",


    ist so gesehen ein string der die ganzen Daten nimmt und die danach abspeichert die meisten lassen es normal
    abspeichern ein nach dem anderen siehe das Tutorial von Maddin
    hier musst du natürlich den Wert erweitern also die anzahl der fische die wäre dann d und das was du hier siehst also
    s[100] ist ein string der maximal 100 Zeilen sein darf.

  • also müsste ich für Fische es so einfügen:


    sscanf(linee, "p<|>s[50]s[300]dddds[50]ds[100]d[10]",


    und dahinter einfach:


    data2[5]


    und unten:


    SetPVarInt(playerid, "fische", data2[5]);


    damit könnte Ich was neues laden?



    ////


    Habs jetzt so :



    else if(rows > 0)
    {
    if(mysql_fetch_row(linee))
    {
    new savingstring[20];
    new data[3][55];
    new data2[6];
    sscanf(linee, "p<|>s[50]s[300]dddds[50]ds[100]d", data[0], largestring, data2[0], data2[1], data2[2], data2[3], data[2], data2[4], estring,data2[5]);
    stringempty(estring);
    stringempty(largestring);
    SetPVarInt(playerid, "killss", data2[0]);
    SetPVarInt(playerid, "Logged", 1);
    SetPVarInt(playerid, "deaths", data2[1]);
    SetPVarInt(playerid, "fische", data2[5]);
    SetPlayerScore(playerid, data2[2]);
    GivePlayerMoney(playerid, data2[3]);
    SetPVarInt(playerid, "AdminLevel", data2[4]);
    mysql_fetch_field_row(savingstring, "adminlvl"); PlayerInfo[playerid][adminlvl] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "killss"); PlayerInfo[playerid][killss] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "deaths"); PlayerInfo[playerid][deaths] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "ratio"); PlayerInfo[playerid][ratio] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "fische"); PlayerInfo[playerid][packet] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "logged"); PlayerInfo[playerid][logged] = strval(savingstring);
    SendClientMessage(playerid, COLOR_YELLOW, "Eingeloggt!");
    mysql_free_result();
    GetPlayerIp(playerid, PIP, 18);
    format(Query, sizeof(Query), "UPDATE `playerinfo` SET IP = '%s' WHERE user='%s'", PIP, escpname(playerid));
    mysql_query(Query);
    }
    }
    }
    }



    Er lädt es aber nicht ist also immer 0 was ist falsch?

  • benutz dazu nur d


    sscanf(linee, "p<|>s[50]s[300]dddds[50]ds[100]d",



    d[10] ist falsch sowas benutzt du bei sscanf2.6 für die strings siehst ja hier auch bei
    s[300]

    dann sollte es eigentlich gehen ^^ aber ich bin nicht so der mysql freak.

  • Hmm


    geht auch nicht habs so drine



    else if(rows > 0)
    {
    if(mysql_fetch_row(linee))
    {
    new savingstring[30];
    new data[3][55];
    new data2[6];
    sscanf(linee, "p<|>s[50]s[300]dddds[50]ds[100]d", data[0], largestring, data2[0], data2[1], data2[2], data2[3], data[2], data2[4],estring,data2[5]);
    stringempty(estring);
    stringempty(largestring);
    SetPVarInt(playerid, "killss", data2[0]);
    SetPVarInt(playerid, "Logged", 1);
    SetPVarInt(playerid, "deaths", data2[1]);
    SetPlayerScore(playerid, data2[2]);
    GivePlayerMoney(playerid, data2[3]);
    SetPVarInt(playerid, "AdminLevel", data2[4]);
    SetPVarInt(playerid, "fische", data2[5]);
    mysql_fetch_field_row(savingstring, "adminlvl"); PlayerInfo[playerid][adminlvl] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "killss"); PlayerInfo[playerid][killss] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "deaths"); PlayerInfo[playerid][deaths] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "ratio"); PlayerInfo[playerid][ratio] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "fische"); PlayerInfo[playerid][fische] = strval(savingstring);
    mysql_fetch_field_row(savingstring, "logged"); PlayerInfo[playerid][logged] = strval(savingstring);


    Nur die Fische werden nicht geladen

  • hast du es schon getestet in dem du den Wert ehöht hast in der Datenbank


    ahja zu dem speichern


    if(GetPVarInt(playerid, "Logged") == 1) { format(Query, sizeof(Query),
    "UPDATE `playerinfo` SET `score` = '%d',`money` = '%d', `kills` = '%d',
    `deaths` = '%d' WHERE `user` = '%s'", GetPlayerScore(playerid),
    GetPlayerMoney(playerid), GetPVarInt(playerid, "Kills"),
    GetPVarInt(playerid, "Deaths"), escpname(playerid)); mysql_query(Query); mysql_free_result(); }[*]solltest es hier noch ergänzen das speichert das ganze wenn der spieler disconnectet ich hab mal nach dme script welches du verwendest gegoogelt[*]hier solltest das noch hinzufügen
    `fische` = '%d', und GetPVarInt(playerid, "fische");

  • Also nochmals Gespeichert wird es das klappt schon wenn ich mich auslogge und danach per software auf die datenbank gucke stimmt der wert!
    Wenn Ich nun auf den server joine und mich einlogge fällt der wert auf 0 anstatt auf das was in der DB gespeichert ist also muss es ja beim laden einen fahler geben nicht?





    In der Datenbank habe ich fische so wurde es erstellt:


    SQL
    fische INT(10)NOT NULL,