Speicherungs Fehler?

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
  • Ich habe versucht meinen Spieler per Query's zu Speichern und zu laden:
    Hier ist der Code :


    Speichern:


    Code
    new querystring[256],str[128];
    			format(querystring,256,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);
    			format(str,128," Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);
    			strcat(querystring,str);
    			mysql_query(querystring);


    Laden:

    Code
    new str[128];
            format(str,128,"SELECT Level, Geld, Kills, Tode, Fraktion, Adminlevel, Mute, Baned, Fraktionsleader, Rang, Job, Warns Skin FROM accounts WHERE Name = '%s'", SpielerInfo[playerid][pName]);
            mysql_query(str);
            mysql_store_result();
    		if(mysql_fetch_row_format(str))
    		{
    			sscanf(str,"p<|>ddddddddddddd",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pKills], SpielerInfo[playerid][pTode], SpielerInfo[playerid][pFraktion], SpielerInfo[playerid][pAdminlevel], SpielerInfo[playerid][pMute], SpielerInfo[playerid][pBaned], SpielerInfo[playerid][pFraktionsleader], SpielerInfo[playerid][pRang], SpielerInfo[playerid][pJob], SpielerInfo[playerid][pSkin], SpielerInfo[playerid][pWarns]);
    		}
    		mysql_free_result();


    Die Variablen werden weder in meiner Datenbank gespeichert, noch werden sie geladen.
    Ich würde mich um jede Hilfe freuen!


  • format(querystring,256,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);

    zu

    format(querystring,256,"UPDATE `accounts` SET `Level` = '%d', `Geld` = '%d', `Kills` = '%d', `Tode` = '%d', `Fraktion` = '%d', `Adminlevel` = '%d', `Mute` = '%d', `Baned` = '%d' WHERE `Name` = '%s'",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);

    und das machst du bei den anderen strings auch :)


    //edit: hab "accounts" vergessen "einzuklammern" mit den `` :)


  • Muss ich in dem 2. String nochmals UPDATE benutzen?

  • Ist nicht relevant.


    format(querystring,256,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d',",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);
    format(str,128," Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);


    In der ersten query Zeile hättest du auch ein WHERE, das musste weg.

    3HZXdYd.png

    2 Mal editiert, zuletzt von Jeffry () aus folgendem Grund: Ein ' zu viel

  • Ist nicht relevant.


    format(querystring,256,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d','",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);
    format(str,128," Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);


    In der ersten query Zeile hättest du auch ein WHERE, das musste weg.


    Werde es mal eben so testen..

  • Ich habe das jetzt alles so und es funktioniert nicht:


    Speichern:


    Code
    new querystring[256],str[128];
                format(querystring,256,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d','",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);
    			format(str,128," Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);
    			strcat(querystring,str);
    			mysql_query(querystring);


    Laden:

    Code
    new str[128];
            format(str,128,"SELECT Level, Geld, Kills, Tode, Fraktion, Adminlevel, Mute, Baned, Fraktionsleader, Rang, Job, Warns Skin FROM accounts WHERE Name = '%s'", SpielerInfo[playerid][pName]);
            mysql_query(str);
            mysql_store_result();
    		if(mysql_fetch_row_format(str))
    		{
    			sscanf(str,"p<|>ddddddddddddd",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pKills], SpielerInfo[playerid][pTode], SpielerInfo[playerid][pFraktion], SpielerInfo[playerid][pAdminlevel], SpielerInfo[playerid][pMute], SpielerInfo[playerid][pBaned], SpielerInfo[playerid][pFraktionsleader], SpielerInfo[playerid][pRang], SpielerInfo[playerid][pJob], SpielerInfo[playerid][pSkin], SpielerInfo[playerid][pWarns]);
    		}
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • new querystring[256],str[128];
    format(querystring,256,"UPDATE `accounts` SET `Level` = '%d', `Geld` = '%d', `Kills` = '%d', `Tode` = '%d', `Fraktion` = '%d', `Adminlevel` = '%d', `Mute` = '%d', `Baned` = '%d','",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);
    format(str,128," `Fraktionsleader` = '%d', `Rang` = '%d', `Job` = '%d', `Skin` = '%d', `Warns` = '%d' WHERE `Name` = '%s'",SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);
    strcat(querystring,str);
    mysql_query(querystring);



    new str[128];
    format(str,128,"SELECT `Level`, `Geld`, `Kills`, `Tode`, `Fraktion`, `Adminlevel`, `Mute`, `Baned`, `Fraktionsleader`, `Rang`, `Job`, `Warns`, `Skin` FROM `accounts` WHERE `Name` = '%s'", SpielerInfo[playerid][pName]);
    mysql_query(str);
    mysql_store_result();
    if(mysql_fetch_row_format(str))
    {
    sscanf(str,"p<|>ddddddddddddd",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pKills], SpielerInfo[playerid][pTode], SpielerInfo[playerid][pFraktion], SpielerInfo[playerid][pAdminlevel], SpielerInfo[playerid][pMute], SpielerInfo[playerid][pBaned], SpielerInfo[playerid][pFraktionsleader], SpielerInfo[playerid][pRang], SpielerInfo[playerid][pJob], SpielerInfo[playerid][pSkin], SpielerInfo[playerid][pWarns]);
    }
    mysql_free_result();


    So wäre es denk ich mal dann richtig :)

  • Tut mir leid, war mein Fehler im ersten Post. Nimm den Code aus meinem ersten Post, hab ihn geändert.


    EDIT:
    Also das da
    format(querystring,256,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d',",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);
    format(str,128," Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);

  • Geht nicht:


    Jeffry:


    Code
    new querystring[256],str[128];
    			format(querystring,256,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d',",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);
    			format(str,128," Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);
    			strcat(querystring,str);
    			mysql_query(querystring);
  • Es wird auch nicht gehen solange du nicht genügend "Platz" in deinem String hast
    Allein der String verbraucht zusammengefügt schon 230 Zeichen.
    Rechnet man nun die jeweiligen %d und %s Delimeter ab und ersetzt diese mal durch mögliche Werte, sieht man das der string mit 256 zu klein ist.


    Erhöhe querystring einfach mal und schau ob es geht ;)


    (Kleiner Tipp: Ich benutze um die Größe meiner Strings festzulegen immer gerne diese Seite: Zeichenzähler ;))

  • Es wird auch nicht gehen solange du nicht genügend "Platz" in deinem String hast
    Allein der String verbraucht zusammengefügt schon 230 Zeichen.
    Rechnet man nun die jeweiligen %d und %s Delimeter ab und ersetzt diese mal durch mögliche Werte, sieht man das der string mit 256 zu klein ist.


    Erhöhe querystring einfach mal und schau ob es geht ;)


    (Kleiner Tipp: Ich benutze um die Größe meiner Strings festzulegen immer gerne diese Seite: Zeichenzähler ;))


    Eben Test :D

  • Nein, du hast ja noch eine Zweite Reihe, und setzt auch noch Dinge ein.
    Setz die beiden strings doch mal auf 512 und 256, Zunno hat damit absolut Recht.


    new querystring[512],str[256];
    format(querystring,512,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d',",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);
    format(str,256," Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);
    strcat(querystring,str);
    mysql_query(querystring);


    Edit:
    Noch einen Tip dazu:
    Wenn du mit strings jeder Art arbeitest und irgendwas nicht tut: print(string);
    Das hilft SEHR oft weiter. ;)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen