[MYSQL] Speichert nichts

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
  • Nabend,


    seid Tagen wird bei mir nichts gespeichert nur ab und zu mal. :D
    An was kann es liegen?


    public OnPlayerDisconnect(playerid, reason)
    {
    GetPlayerPos(playerid,SD[playerid][SpielerLastX],SD[playerid][SpielerLastY],SD[playerid][SpielerLastZ]);
    GetPlayerHealth(playerid,SD[playerid][SpielerLeben]);
    GetPlayerArmour(playerid,SD[playerid][SpielerRuestung]);
    GetPlayerFacingAngle(playerid,SD[playerid][SpielerAngle]);
    GetPlayerEuro(playerid,SD[playerid][SpielerEuro]);
    GetPlayerCent(playerid,SD[playerid][SpielerCent]);
    SD[playerid][SpielerLevel] = GetPlayerScore(playerid);
    SD[playerid][SpielerSkin] = GetPlayerSkin(playerid);
    SpielerSpeichern(playerid);
    SpielerReset(playerid);
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    if(SD[playerid][SpielerLogged] == 0)return 1;
    new query[512],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"UPDATE `spieleraccounts` SET `Level` = '%i',`Euro` = '%i',`Cent` = '%i',`Skin` = '%i',`Adminlevel` = '%i',`LastX` = '%f',`LastY` = '%f',`LastZ` = '%f',`LastAngle` = '%f',`LastLeben` = '%f',`LastRuestung` = '%f',`LastInterior` = '%i',`LastVWorld` = '%i',`Toetungen` = '%i',`Tode` = '%i' WHERE `Name` = '%s'",
    SD[playerid][SpielerLevel],SD[playerid][SpielerEuro],SD[playerid][SpielerCent],SD[playerid][SpielerSkin],SD[playerid][SpielerAdmin],SD[playerid][SpielerLastX],SD[playerid][SpielerLastY],SD[playerid][SpielerLastZ],SD[playerid][SpielerAngle],SD[playerid][SpielerLeben],SD[playerid][SpielerRuestung],GetPlayerInterior(playerid),GetPlayerVirtualWorld(playerid),SD[playerid][SpielerKills],SD[playerid][SpielerTode],name);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }


    Danke im vorraus!

  • Noch höher? :D



    [19:43:55] [DEBUG] mysql_tquery - connection: 1, query: "SELECT id FROM spieleraccounts WHERE Name = 'ChunkZzTest16'", callback: "SpielerVorhanden2", format: "i"
    [19:43:55] [DEBUG] CMySQLQuery::CMySQLQuery() - constructor called
    [19:43:55] [DEBUG] mysql_tquery - scheduling query "SELECT id FROM spieleraccounts WHERE Name = 'ChunkZzTest16'"..
    [19:43:55] [DEBUG] CMySQLQuery::Execute[SpielerVorhanden2(i)] - starting query execution
    [19:43:55] [DEBUG] CMySQLQuery::Execute[SpielerVorhanden2(i)] - query was successful
    [19:43:55] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
    [19:43:55] [DEBUG] CMySQLQuery::Execute[SpielerVorhanden2(i)] - data being passed to ProcessCallbacks()
    [19:43:55] [DEBUG] Calling callback "SpielerVorhanden2"..
    [19:43:55] [DEBUG] cache_get_data - connection: 1
    [19:43:55] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
    [19:43:55] [DEBUG] CMySQLQuery::~CMySQLQuery() - deconstructor called
    [19:43:57] [DEBUG] mysql_tquery - connection: 1, query: "SELECT id FROM spieleraccounts WHERE Name = 'ChunkZzTest16'", callback: "SpielerVorhanden", format: "i"
    [19:43:57] [DEBUG] CMySQLQuery::CMySQLQuery() - constructor called
    [19:43:57] [DEBUG] mysql_tquery - scheduling query "SELECT id FROM spieleraccounts WHERE Name = 'ChunkZzTest16'"..
    [19:43:57] [DEBUG] CMySQLQuery::Execute[SpielerVorhanden(i)] - starting query execution
    [19:43:57] [DEBUG] CMySQLQuery::Execute[SpielerVorhanden(i)] - query was successful
    [19:43:57] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
    [19:43:57] [DEBUG] CMySQLQuery::Execute[SpielerVorhanden(i)] - data being passed to ProcessCallbacks()
    [19:43:57] [DEBUG] Calling callback "SpielerVorhanden"..
    [19:43:57] [DEBUG] cache_get_data - connection: 1
    [19:43:57] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
    [19:43:57] [DEBUG] CMySQLQuery::~CMySQLQuery() - deconstructor called
    [19:44:01] [DEBUG] mysql_escape_string - source: "blaxes1991", connection: 1, max_len: 64
    [19:44:01] [DEBUG] mysql_tquery - connection: 1, query: "INSERT INTO spieleraccounts (Name,Passwort) VALUES ('ChunkZzTest", callback: "(null)", format: "(null)"
    [19:44:01] [DEBUG] CMySQLQuery::CMySQLQuery() - constructor called
    [19:44:01] [DEBUG] mysql_tquery - scheduling query "INSERT INTO spieleraccounts (Name,Passwort) VALUES ('ChunkZzTest16',MD5('.....'))"..
    [19:44:01] [DEBUG] CMySQLQuery::Execute[()] - starting query execution
    [19:44:01] [DEBUG] CMySQLQuery::Execute[()] - query was successful
    [19:44:01] [DEBUG] CMySQLQuery::Execute[()] - no callback specified, skipping result saving
    [19:44:01] [DEBUG] CMySQLQuery::Execute[()] - data being passed to ProcessCallbacks()
    [19:44:01] [DEBUG] CMySQLQuery::~CMySQLQuery() - deconstructor called
    [19:44:02] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE `spieleraccounts` SET `SFrage` = 'Wie hiess dein erstes H", callback: "(null)", format: "(null)"
    [19:44:02] [DEBUG] CMySQLQuery::CMySQLQuery() - constructor called
    [19:44:02] [DEBUG] mysql_tquery - scheduling query "UPDATE `spieleraccounts` SET `SFrage` = 'Wie hiess dein erstes Haustier?' WHERE `Name` = 'ChunkZzTest16'"..
    [19:44:02] [DEBUG] CMySQLQuery::Execute[()] - starting query execution
    [19:44:02] [DEBUG] CMySQLQuery::Execute[()] - query was successful
    [19:44:02] [DEBUG] CMySQLQuery::Execute[()] - no callback specified, skipping result saving
    [19:44:02] [DEBUG] CMySQLQuery::Execute[()] - data being passed to ProcessCallbacks()
    [19:44:02] [DEBUG] CMySQLQuery::~CMySQLQuery() - deconstructor called
    [19:44:03] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE `spieleraccounts` SET `SAntwort` = 'Penis'", callback: "(null)", format: "(null)"
    [19:44:03] [DEBUG] CMySQLQuery::CMySQLQuery() - constructor called
    [19:44:03] [DEBUG] mysql_tquery - scheduling query "UPDATE `spieleraccounts` SET `SAntwort` = 'Penis'"..
    [19:44:03] [DEBUG] CMySQLQuery::Execute[()] - starting query execution
    [19:44:03] [DEBUG] CMySQLQuery::Execute[()] - query was successful
    [19:44:03] [DEBUG] CMySQLQuery::Execute[()] - no callback specified, skipping result saving
    [19:44:03] [DEBUG] CMySQLQuery::Execute[()] - data being passed to ProcessCallbacks()
    [19:44:03] [DEBUG] CMySQLQuery::~CMySQLQuery() - deconstructor called


    Ich erstelle mir ein Account, logge mich aus und der Speichert mich garnicht, er speichert mich erst wenn ich mich das 2te mal Einlogge..

  • Eingetragen werde ich nur Name, Passwort und mein Sicherheitssystem, bin ich drauf und logge mich aus, speichert er nicht mein Skin, Level etc..

    public OnPlayerDisconnect(playerid, reason)
    {
    GetPlayerPos(playerid,SD[playerid][SpielerLastX],SD[playerid][SpielerLastY],SD[playerid][SpielerLastZ]);
    GetPlayerHealth(playerid,SD[playerid][SpielerLeben]);
    GetPlayerArmour(playerid,SD[playerid][SpielerRuestung]);
    GetPlayerFacingAngle(playerid,SD[playerid][SpielerAngle]);
    GetPlayerEuro(playerid,SD[playerid][SpielerEuro]);
    GetPlayerCent(playerid,SD[playerid][SpielerCent]);
    SD[playerid][SpielerLevel] = GetPlayerScore(playerid);
    SD[playerid][SpielerSkin] = GetPlayerSkin(playerid);
    SpielerSpeichern(playerid);
    SpielerReset(playerid);
    return 1;
    }

    stock SpielerSpeichern(playerid)
    {
    if(SD[playerid][SpielerLogged] == 0)return 1;
    new query[512],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"UPDATE `spieleraccounts` SET `Level` = '%i',`Euro` = '%i',`Cent` = '%i',`Skin` = '%i',`Adminlevel` = '%i',`LastX` = '%f',`LastY` = '%f',`LastZ` = '%f',`LastAngle` = '%f',`LastLeben` = '%f',`LastRuestung` = '%f',`LastInterior` = '%i',`LastVWorld` = '%i',`Toetungen` = '%i',`Tode` = '%i' WHERE `Name` = '%s'",
    SD[playerid][SpielerLevel],SD[playerid][SpielerEuro],SD[playerid][SpielerCent],SD[playerid][SpielerSkin],SD[playerid][SpielerAdmin],SD[playerid][SpielerLastX],SD[playerid][SpielerLastY],SD[playerid][SpielerLastZ],SD[playerid][SpielerAngle],SD[playerid][SpielerLeben],SD[playerid][SpielerRuestung],GetPlayerInterior(playerid),GetPlayerVirtualWorld(playerid),SD[playerid][SpielerKills],SD[playerid][SpielerTode],name);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }

  • Versuch das mal so:
    stock SpielerSpeichern(playerid)
    {
    if(SD[playerid][SpielerLogged] == 0)return 1;
    new query[512],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    new Float:pos[4],Float:health,Float:armour;
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);GetPlayerFacingAngle(playerid,pos[3]);
    format(query,sizeof(query),"UPDATE `spieleraccounts` SET `Level` = '%i',`Euro` = '%i',`Cent` = '%i',`Skin` = '%i',`Adminlevel` = '%i',`LastX` = '%f',`LastY` = '%f',`LastZ` = '%f',`LastAngle` = '%f',`LastLeben` = '%f',`LastRuestung` = '%f',`LastInterior` = '%i',`LastVWorld` = '%i',`Toetungen` = '%i',`Tode` = '%i' WHERE `Name` = '%s'",
    GetPlayerScore(playerid),SD[playerid][SpielerEuro],SD[playerid][SpielerCent],GetPlayerSkin(playerid),SD[playerid][SpielerAdmin],pos[0],pos[1],pos[2],pos[3],GetPlayerHealth(playerid,health),GetPlayerArmour(playerid,armour);,GetPlayerInterior(playerid),GetPlayerVirtualWorld(playerid),SD[playerid][SpielerKills],SD[playerid][SpielerTode],name);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    SpielerSpeichern(playerid);
    SpielerReset(playerid);
    return 1;
    }

  • Ich weiß nicht, in wie weit deine DB das handled, aber du probierst Euro, Cent, etc. als Zeichenketten abzulegen wegen dem '%i' anstatt %i (also Hochkommata weglassen), wenn ich das jetzt richtig inner Birne hab.