MySQL - Benutzervariablen laden

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,
    habe ein Problem..


    stock LoadPlayerInfo(iPlayer)
    {
    new Query[700];
    if(mysql_fetch_row(Query))
    {
    sscanf(Query, "e<p<|>s[24]s[129]ddddddddddddddddddddddddddds[16]dddddddddddddddddddddddddddds[24]ddddddddfffdddddddddddd>", PlayerInfo[iPlayer]);
    mysql_free_result();
    }
    }


    So lade ich die Variablen aus der MySQL Datenbank für den User. Jedoch macht er komischerweise immer -1.
    In der Datenbank habe ich bei Skin 25 stehen, logge ich mich ein im Spiel, habe ich Skin 24. Hab mir testweise auch nen CMD gebastelt der mir den Inhalt von ein paar Int-Variablen anzeigt, und bei jeder hat er die Zahl -1 gemacht..


    Woran liegt das?


    //EDIT:
    hier noch mein PlayerInfo, falls es hilft:


    enum pInfo
    {
    pUsername[MAX_PLAYER_NAME],
    pPassword[128],
    pLevel,
    pAdminlevel,
    pReg,
    pSex,
    pAge,
    pAccBan,
    pMuted,
    pExp,
    pMoney,
    pBank,
    pCrimes,
    pKills,
    pDeaths,
    pPhoneBook,
    pLottoNr,
    pJob,
    pJobTime,
    pJailed,
    pJailTime,
    pMats,
    pDrugs,
    pLeader,
    pMember,
    pRank,
    pSkin,
    pInt,
    pLocal,
    pPnumber[16],
    pPhousekey,
    pPbiskey,
    pCarLic,
    pFlyLic,
    pBoatLic,
    pFishLic,
    pGunLic,
    pLKWLic,
    pMotoLic,
    pZig,
    pZigSucht,
    pGun1,
    pGun2,
    pGun3,
    pGun4,
    pAmmo1,
    pAmmo2,
    pAmmo3,
    pAmmo4,
    pPayDay,
    pPayDayHad,
    pMP3Player,
    pWins,
    pLoses,
    pTut,
    pWarns,
    pFuel,
    pMarried,
    pMarriedTo[24],
    pGesamtMinutes,
    pMinutesSinceLogin,
    pLogins,
    pHandyGeld,
    pHandyVer,
    pUhrID,
    pHandyID,
    pTot,
    Float:pTx,
    Float:pTy,
    Float:pTz,
    pOwnPerso,
    pPersoStop,
    pFrakSperre,
    pHelm,
    pBrille,
    pMuetze,
    pMaske,
    pSchokoriegel,
    pKondome,
    pKamera,
    pKameraFilm,
    pDildo,
    };


    new PlayerInfo[MAX_PLAYERS][pInfo];


    //EDIT2:
    Gerade gesehen das ich mich vertan habe.. Er macht nicht die Zahlen -1, sondern -1 Feld. Das Feld davor hatte 24, deshalb Skin24. Also er ladet die Felder falsch.

  • Hm.. ^^


    new
    EscPass[38],
    Query[128];


    mysql_real_escape_string(inputtext, EscPass);


    format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Username` = '%s' AND `Password` = md5('%s')", GetName(playerid), EscPass);


    mysql_query(Query);
    mysql_store_result();


    if(mysql_num_rows() > 0)
    {
    LoadPlayerInfo(playerid);
    // ..... blabla


    Da lade ich den User und da habe ich das SELECT * FROM blabla

  • Versuchs mal so
    stock LoadPlayerInfo(iPlayer)
    {
    new str[512],Query[129];
    format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Username` = '%s' AND `Password` = md5('%s')", GetName(playerid), EscPass);
    mysql_query(Query);
    mysql_store_result();
    while(mysql_fetch_row(str))
    {
    sscanf(Query, "e<p<|>s[24]s[129]ddddddddddddddddddddddddddds[16]dddddddddddddddddddddddddddds[24]ddddddddfffdddddddddddd>", PlayerInfo[iPlayer]);
    }
    return 1;
    }

    The fact is, I am right. And if you think I'm wrong, you are wrong.