Spieler Daten werden nicht gespeichert

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
  • Moin moin,

    Alter, Geschlecht, und die SkinID wird komischerweise nicht gespeichert..


  • Moin Meister.

    Du solltest dich bei deinem Code mehrere Sachen fragen.

    Ich habe dir als aller erstes den Code minimal umgeschrieben.


    Wird savePlayer ausgeführt?

    Bist du angemeldet? (peingeloggt)

    Was spuckt der Query Print aus sowie die MySQL Log?

    "alter" würde ich umbenennen da es ein SQL Command an sich schon ist, wobei ich meine das wäre bei mysql_format nicht wichtig, dennoch schaus dir an!


    Zum von mir editierten Quellcode:

    Man hätte man noch mehr umschreiben können, will dich aber nicht groß verwirren.


  • Hey, danke für deine Antwort!

    Code
    19:44:55] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '´user´ SET ´skin´='60',´alter´='23',´geschlecht´='1',´neuling´='0',...' at line 1
    [19:44:55] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
  • Weiß jetzt nicht ob das wirklich der Fehler ist.. aber integer werte packt man bei mysql nicht in Anführungszeichen. Probiere es mal ohne.

    Code
        mysql_format(dbhandle,query,sizeof(query),"UPDATE user SET skin='%d',alter='%d',geschlecht='%d',neuling´='%d',leben='%.0f',russi='%.0f' WHERE ID='%i'",GetPlayerSkin(playerid),
        pInfo[playerid][palter],pInfo[playerid][pgeschlecht],pInfo[playerid][pneuling],pInfo[playerid][pleben],pInfo[playerid][prussi],pInfo[playerid][pid]),

    So funktionierts irgendwie auch nicht

  • Du brauchst in deinem Falle die ´´ und '' nicht.

    '' Benötigst du beim String, bzw. SET frakrang='%e', dort liegt aber definitiv nicht der Fehler.


    Glaube es liegt am ´user´


    Schreibe es mal so: (spielerjahr = alter) Falls du es genauso übernimmst, bitte in der Datenbank anpassen.

  • Ohne Erfolg!

    Weder das Geschlecht & Alter speichert sich nicht

  • Versuch mal so


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

    Alter, Geschlecht, und die SkinID wird komischerweise nicht gespeichert..

    Das liegt wohl mit daran, das deine Escape Zeichen falsch sind. Du verwendest ´ brauchst aber `

    Richtig wäre also:

    SQL
    UPDATE `user` SET `skin` = '%d', `alter` = '%d', `geschlecht` = '%d', `neuling` = '%d', `leben` = '%.0f', `russi` = '%.0f' WHERE `ID` = '%i'

    Um zu überprüfen, ob deine SQL-Anfrage korrekt ist, kannst du auch auf verschiedene Online-Tools zurückgreifen (Beispiel: https://www.eversql.com/sql-syntax-check-validator/)

  • Das liegt wohl mit daran, das deine Escape Zeichen falsch sind. Du verwendest ´ brauchst aber `

    Richtig wäre also:

    SQL
    UPDATE `user` SET `skin` = '%d', `alter` = '%d', `geschlecht` = '%d', `neuling` = '%d', `leben` = '%.0f', `russi` = '%.0f' WHERE `ID` = '%i'

    Um zu überprüfen, ob deine SQL-Anfrage korrekt ist, kannst du auch auf verschiedene Online-Tools zurückgreifen (Beispiel: https://www.eversql.com/sql-syntax-check-validator/)

    Danke, hat funktioniert!

    btw, danke an Alle :)


    Hätte da noch einen Warning, denn ich irgendwie nicht wegbekomme


    warning 202: number of arguments does not match definition <-- Zeile 191


  • ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,string,"Testserver,"Dein Account wurde gefunden bitte Logge dich ein ","OK","");


    zu


    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Testserver,"Dein Account wurde gefunden bitte Logge dich ein ","OK","");

  • ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,string,"Testserver,"Dein Account wurde gefunden bitte Logge dich ein ","OK","");


    zu


    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Testserver,"Dein Account wurde gefunden bitte Logge dich ein ","OK","");

    Funktioniert, jedoch steht dann nicht da wie viele Versuche er schon versucht hat ^^