Datenbankfehler - Mysql

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
  • stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
    {
    new str[520];
    format(str,sizeof str,"SELECT * FROM `accounts` WHERE `Name` = '%s'",PlayerName(playerid));
    mysql_query(str);
    mysql_store_result();
    mysql_fetch_row(str);
    sscanf(str,"p<|>{i}s[24]s[130]{i}ddddfddddsddddssss",SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pHealth],SpielerInfo[playerid][pPerso],SpielerInfo[playerid][pCarLic],SpielerInfo[playerid][pBikeLic],SpielerInfo[playerid][pFlyLic],SpielerInfo[playerid][pAdmin],
    SpielerInfo[playerid][pBan],SpielerInfo[playerid][pWarn],SpielerInfo[playerid][pWaffenLic],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pStory],SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pBundesland]);
    mysql_free_result();
    }
    return 1;
    }
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[500];
    format(query, sizeof(query), "UPDATE `accounts` SET `Level` = '%d',`Geld` = '%d',`Kills` = '%d',`Tode` = '%d',`Health` = '%f',`Perso` = '%d',`CarLic` = '%d', `BikeLic` = '%d',`FlyLic` = '%d',`Admin` = '%s',`Ban` = '%d',`Warn` = '%d', `WaffenLic` = '%d',`Leader` = '%s',`Rang` = '%s',`Fraktion` = '%s',`Story` = '%d', `Alter` = '%d', `Bundesland` = '%s'",
    SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pHealth],SpielerInfo[playerid][pPerso],SpielerInfo[playerid][pCarLic],SpielerInfo[playerid][pBikeLic],SpielerInfo[playerid][pFlyLic],SpielerInfo[playerid][pAdmin],
    SpielerInfo[playerid][pBan],SpielerInfo[playerid][pWarn],SpielerInfo[playerid][pWaffenLic],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pStory],SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pBundesland]);
    mysql_query(query);
    }
    }
    return 1;
    }


    Das Problem ist, man Connected auf denn Server Registriert sich, Spawnt...Geht man raus, kommt man neu rein, bekommt man erstens Das Geld nicht wieder auf die Hand, 2. Steht in der Datenbank alles auf 0, bzw es Speichert Falsch ab :> oder es Loadet falsch weiß jemand woran der Fehler hier liegt?


  • du meinst speichern


    zu dem PuSchKiiN_x3 lass einfach mal was laden und poste das query lass es dir ausgeben oder nehme das aus der mysql_log.
    zu dem noch dein enum welches SpielerInfo als index dient


  • Hoffe doch du meinst das :D

  • enum SpielerDaten
    {
    pName[MAX_PLAYER_NAME],
    pLevel,
    pGeld,
    pKills,
    pAlter,
    pPerso,
    pLeader,
    pBundesland,
    pMember,
    pRang,
    pStory,
    pFraktion,
    pCarLic,
    pBikeLic,
    pFlyLic,
    pTruckLic,
    pWaffenLic,
    pTode,
    pAdmin,
    pBan,
    pWarn,
    Float:pHealth
    }
    new SpielerInfo[MAX_PLAYERS][SpielerDaten];


    Kurze Frage :D macht das viel aus wenn das Enum durcheinander ist :>?

  • Dein Enum muss genauso in der Reihenfolge strukturiert sein, wie du die Spalten ausliest per SSCANF.


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Dein Enum muss genauso in der Reihenfolge strukturiert sein, wie du die Spalten ausliest per SSCANF.


    LG


    Nein nur wenn man den specifer e benutz und siehst du in seinem code ein e


    wen dein string so aussehen würde würde es gehen jedoch ist das bei dir nicht der fall passwort wird bei dir in ein integer rein gehauen
    wie der name auch und richtung ende wird es auch nochmal kritisch da versteh ich auch nicht laut deinem enum warum du dort strings verwendest.


    sscanf("260|PuSchKiiNX|test123|1|1|0|0|50|0|0|0|0|0|0|0|0|0|0|0|1|88|0","p<|>{i}s[24]s[130]ddddfdddddddddddddd",
    SpielerInfo[playerid][pName],
    SpielerInfo[playerid][pPasswort],
    SpielerInfo[playerid][pLevel],
    SpielerInfo[playerid][pGeld],
    SpielerInfo[playerid][pKills],
    SpielerInfo[playerid][pTode],
    SpielerInfo[playerid][pHealth],
    SpielerInfo[playerid][pPerso],
    SpielerInfo[playerid][pCarLic],
    SpielerInfo[playerid][pBikeLic],
    SpielerInfo[playerid][pFlyLic],
    SpielerInfo[playerid][pAdmin],
    SpielerInfo[playerid][pBan],
    SpielerInfo[playerid][pWarn],
    SpielerInfo[playerid][pWaffenLic],
    SpielerInfo[playerid][pLeader],
    SpielerInfo[playerid][pRang],
    SpielerInfo[playerid][pFraktion],
    SpielerInfo[playerid][pStory],
    SpielerInfo[playerid][pAlter],
    SpielerInfo[playerid][pBundesland]);
    printf("%s %d",SpielerInfo[playerid][pName],SpielerInfo[playerid][pAlter]);

    das ganze kannst du so leicht überprüfen einfach unter main oder OnGameModeInit


    //edit zu dem ist mir gerade aufgefallen du lässt elmente wie zum beispiel Fraktion als string speichern und ließt das auch als string aus in deinem enum sieht das wiederrum anders aus dort steht das als integer drinne genau so wie beim rang

  • IPrototypeI
    Ja hatte ich gemeint, habe übersehen, dass er nicht e benutzt hat.


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

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