MySQL Inhalte werden auf "0" gesetzt?

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
  • Hey Leute,


    ich habe seit längerem schon ein Problem, was ich einfach nicht gelöst bekomme...


    Da mein Script viel mit MySQL arbeitet und es soweit auch alles sehr gut klappt, dachte ich auch das das so bleibt, doch
    schon seit geraumer Zeit beschäftigt mich mein Fraktionskassen-System, welches nach einem restart immer zurück auf 0 gesetzt wird.


    Dabei habe ich eigentlich nichts im Script so eingegeben...



    Das einzige was passiert:


    Speicherung-Stock:
    stock KassenSpeichern()
    {
    new query[128];
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i', `Mats` = '%i', `Gras` = '%i', `Heroin` = '%i' WHERE `Name` = 'GS'", KassenInfo[10][k_Geld],KassenInfo[10][k_Mats],KassenInfo[10][k_Gras],KassenInfo[10][k_Heroin]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i', `Mats` = '%i', `Gras` = '%i', `Heroin` = '%i' WHERE `Name` = 'BALLAS'", KassenInfo[11][k_Geld],KassenInfo[11][k_Mats],KassenInfo[11][k_Gras],KassenInfo[11][k_Heroin]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i', `Mats` = '%i', `Gras` = '%i', `Heroin` = '%i', `C4` = '%i' WHERE `Name` = 'TERROR'", KassenInfo[12][k_Geld],KassenInfo[12][k_Mats],KassenInfo[12][k_Gras],KassenInfo[12][k_Heroin],KassenInfo[12][k_C4]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i', `Mats` = '%i', `Gras` = '%i', `Heroin` = '%i' WHERE `Name` = 'LCN'", KassenInfo[13][k_Geld],KassenInfo[13][k_Mats],KassenInfo[13][k_Gras],KassenInfo[13][k_Heroin]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i' WHERE `Name` = 'Jackpot'", KassenInfo[0][k_Geld]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i' WHERE `Name` = 'LSPD'", KassenInfo[1][k_Geld]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i' WHERE `Name` = 'BND'", KassenInfo[2][k_Geld]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i' WHERE `Name` = 'Hitmen'", KassenInfo[3][k_Geld]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i' WHERE `Name` = 'Army'", KassenInfo[4][k_Geld]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i' WHERE `Name` = 'Medic'", KassenInfo[6][k_Geld]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i' WHERE `Name` = 'OAmt'", KassenInfo[7][k_Geld]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i' WHERE `Name` = 'News'", KassenInfo[9][k_Geld]);
    mysql_query(query);
    return 1;
    }


    OnGameModeInit (hier werden auch die ganzen Sachen geladen):
    for(new i=0;i<14;i++)
    {
    KassenInfo[i][k_Geld] = 0;
    KassenInfo[i][k_Mats] = 0;
    KassenInfo[i][k_Heroin] = 0;
    KassenInfo[i][k_Gras] = 0;
    KassenInfo[i][k_C4] = 0;
    }

    KassenInfo[13][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "LCN");
    KassenInfo[13][k_Mats] = mysql_GetInt("kassen", "Mats", "Name", "LCN");
    KassenInfo[13][k_Heroin] = mysql_GetInt("kassen", "Heroin", "Name", "LCN");
    KassenInfo[13][k_Gras] = mysql_GetInt("kassen", "Gras", "Name", "LCN");
    //
    KassenInfo[10][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "GS");
    KassenInfo[10][k_Mats] = mysql_GetInt("kassen", "Mats", "Name", "GS");
    KassenInfo[10][k_Gras] = mysql_GetInt("kassen", "Gras", "Name", "GS");
    KassenInfo[10][k_Heroin] = mysql_GetInt("kassen", "Heroin", "Name", "GS");
    //
    KassenInfo[11][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "BALLAS");
    KassenInfo[11][k_Mats] = mysql_GetInt("kassen", "Mats", "Name", "BALLAS");
    KassenInfo[11][k_Heroin] = mysql_GetInt("kassen", "Heroin", "Name", "BALLAS");
    KassenInfo[11][k_Gras] = mysql_GetInt("kassen", "Gras", "Name", "BALLAS");
    //
    KassenInfo[12][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "TERROR");
    KassenInfo[12][k_Mats] = mysql_GetInt("kassen", "Mats", "Name", "TERROR");
    KassenInfo[12][k_Gras] = mysql_GetInt("kassen", "Gras", "Name", "TERROR");
    KassenInfo[12][k_C4] = mysql_GetInt("kassen", "C4", "Name", "TERROR");
    KassenInfo[12][k_Heroin] = mysql_GetInt("kassen", "Heroin", "Name", "TERROR");
    //
    KassenInfo[0][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "Jackpot");
    KassenInfo[9][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "News");
    KassenInfo[7][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "OAmt");
    KassenInfo[6][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "Medic");
    KassenInfo[4][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "Army");
    KassenInfo[3][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "Hitmen");
    KassenInfo[2][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "BND");
    KassenInfo[1][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "LSPD");



    Bei OnGameModeExit habe ich soweit nichts mit dem F-Kassen System eingebaut...


    Ich tüftel da schon etwas länger dran rum, komme aber nicht weiter...


    Habt ihr eine Idee?

    Meine Werke

  • Er speichert es ja richtig!
    Sprich nach jedem mal wenn ich etwas ein- oder ausgezahlt habe, wurde der Wert in der DB auch dementsprechend geändert!


    Nur wenn ich einen restart gemacht habe, wurden die Werte alle auf 0 gesetzt!

    Meine Werke

  • Ahh, achso.
    Werden die Sachen wie "Heroin" und "Gras" richtig geladen? Poste ggf. mal den MySQL Log vom starten des Servers.
    Möglicherweise wird der Code gar nicht aufgerufen.


    Übrigens, ändere beim Speichern:
    new query[128];
    zu:
    new query[256];


    Du bist da ganz knapp an der Grenze. Eins ist bei 118, die Werte die in die Platzhalter kommen könnten das überfüllen.

  • Ahh, achso.
    Werden die Sachen wie "Heroin" und "Gras" richtig geladen? Poste ggf. mal den MySQL Log vom starten des Servers.
    Möglicherweise wird der Code gar nicht aufgerufen.


    Hey Jeffry,


    ich habe jetzt den Server nur einmal gestoppt, selbst da werden die MySQL Werte auf 0 gesetzt...


    Genau so ist es, wenn ich den Server neustarte :/


    Bei "OnGameModeExit" steht soweit nichts in Verbindung mit dem Kassen System, aber wieso werden dann alle Werte auf 0 gesetzt?! :/


    Ich verzweifle langsam... :(

    Meine Werke

  • Hmm, kannst du dann bitte folgendes machen?

    1) Setze in der Datenbank die Werte der Dinge die zurück gesetzt werden auf 50 (z.B.), dann starte den Server. Dann poste den MySQL Log dazu (paar Posts drüber steht ja, wie du den bekommst).
    2.) Dann schließe den Server bitte wieder, und poste den MySQL Log der dazu kommt.

    3.) Zu 1 und 2 poste bitte jeweils noch den aktuellen Code der ausgeführt wird.

  • Hmm, kannst du dann bitte folgendes machen?



    Ich habe die Werte eingetragen und den Server neugestartet.
    Die Werte wurden ebenfalls wieder auf 0 gesetzt und folgendes steht nun in der Log:



    Des Weiteren steht ein paar Zeilen da unter folgendes:


    Der PAWN-Code dazu:


    for(new i=0;i<14;i++)
    {
    KassenInfo[i][k_Geld] = 0;
    KassenInfo[i][k_Mats] = 0;
    KassenInfo[i][k_Heroin] = 0;
    KassenInfo[i][k_Gras] = 0;
    KassenInfo[i][k_C4] = 0;
    }

    KassenInfo[13][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "LCN");
    KassenInfo[13][k_Mats] = mysql_GetInt("kassen", "Mats", "Name", "LCN");
    KassenInfo[13][k_Heroin] = mysql_GetInt("kassen", "Heroin", "Name", "LCN");
    KassenInfo[13][k_Gras] = mysql_GetInt("kassen", "Gras", "Name", "LCN");
    //
    KassenInfo[10][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "GS");
    KassenInfo[10][k_Mats] = mysql_GetInt("kassen", "Mats", "Name", "GS");
    KassenInfo[10][k_Gras] = mysql_GetInt("kassen", "Gras", "Name", "GS");
    KassenInfo[10][k_Heroin] = mysql_GetInt("kassen", "Heroin", "Name", "GS");
    //
    KassenInfo[11][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "BALLAS");
    KassenInfo[11][k_Mats] = mysql_GetInt("kassen", "Mats", "Name", "BALLAS");
    KassenInfo[11][k_Heroin] = mysql_GetInt("kassen", "Heroin", "Name", "BALLAS");
    KassenInfo[11][k_Gras] = mysql_GetInt("kassen", "Gras", "Name", "BALLAS");
    //
    KassenInfo[12][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "TERROR");
    KassenInfo[12][k_Mats] = mysql_GetInt("kassen", "Mats", "Name", "TERROR");
    KassenInfo[12][k_Gras] = mysql_GetInt("kassen", "Gras", "Name", "TERROR");
    KassenInfo[12][k_C4] = mysql_GetInt("kassen", "C4", "Name", "TERROR");
    KassenInfo[12][k_Heroin] = mysql_GetInt("kassen", "Heroin", "Name", "TERROR");
    //
    KassenInfo[0][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "Jackpot");
    KassenInfo[9][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "News");
    KassenInfo[7][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "OAmt");
    KassenInfo[6][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "Medic");
    KassenInfo[4][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "Army");
    KassenInfo[3][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "Hitmen");
    KassenInfo[2][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "BND");
    KassenInfo[1][k_Geld] = mysql_GetInt("kassen", "Geld", "Name", "LSPD");


    Wie ich soweit erkennen kann, werden also die Werte vorher auf 0 gesetzt, oder irre ich mich? :o

    Meine Werke

  • Wie ich soweit erkennen kann, werden also die Werte vorher auf 0 gesetzt, oder irre ich mich? :o


    Ehm...mal eine doofe Frage, hast du überhaupt mit INSERT INTO was in die Datenbank geschrieben? :huh:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ehm...mal eine doofe Frage, hast du überhaupt mit INSERT INTO was in die Datenbank geschrieben?



    Ich weiß nicht genau was du damit meinst ?(


    Ich habe sobald jemand etwas einzahlt mit dem "UPDATE" Code gearbeitet, da ich im Script mit Variablen für die Kassen arbeite. d.h.:


    Der Code beim Einzahlen:


    pInv[playerid][Marihuana] =pInv[playerid][Marihuana] - wert;
    KassenInfo[10][k_Gras] += wert;
    new str[128];
    format(str,sizeof(str),"%s hat %ig Marihuana in die Fraktionskasse gezahlt! Stand: %ig",SpielerName(playerid),wert,KassenInfo[10][k_Gras]);
    FrakCast(COLOR_YELLOW,str,10);
    KassenSpeichern();
    FrakLog10(str);


    Und so wird es dann gespeichert:


    stock KassenSpeichern()
    {
    new query[256];
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i', `Mats` = '%i', `Gras` = '%i', `Heroin` = '%i' WHERE `Name` = 'GS'", KassenInfo[10][k_Geld],KassenInfo[10][k_Mats],KassenInfo[10][k_Gras],KassenInfo[10][k_Heroin]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `kassen` SET `Geld` = '%i', `Mats` = '%i', `Gras` = '%i', `Heroin` = '%i' WHERE `Name` = 'BALLAS'", KassenInfo[11][k_Geld],KassenInfo[11][k_Mats],KassenInfo[11][k_Gras],KassenInfo[11][k_Heroin]);
    mysql_query(query);
    usw...
    return 1;
    }

    Meine Werke

  • Ich habe sobald jemand etwas einzahlt mit dem "UPDATE" Code


    Aber du kannst nur etwas Updaten, wenn schon etwas in der Tabelle existiert.


    Deshalb meine Frage, ob du vorher schon was reingeschrieben hast mit INSERT INTO ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Beitrag von Nexon00 ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.