mysql_store_result 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
  • Hi, habe ein Problem mit meinem "Ladescript" via mysql, da ich es nicht so machen wollte:





    SpielerInfo[playerid][pAdmin] = mysql_GetInt("accounts", "Admin", "Name", PlayerName(playerid));









    habe ich es so versucht:






    enum e_SpielerDaten
    {
    pName[MAX_PLAYER_NAME],
    pPassword[64],
    pAdmin,
    pKills,
    pTode,
    pFraktion,
    pSkin,
    pBan,
    pBangrund[64],
    pBanadmin[24],
    pWarn
    };





    new SpielerInfo[MAX_PLAYERS][e_SpielerDaten];





    stock LoadAccount(playerid)
    {
    new query[512];
    format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", PlayerName(playerid));
    mysql_query(query);
    while(mysql_fetch_row(query, "|", mysql))
    {
    sscanf(query, "e<p<|>{i}s[24]s[64]iiiiis[64]s[24]i>", SpielerInfo[playerid]);
    mysql_free_result();
    print(query);
    }
    mysql_free_result();
    new fid = SpielerInfo[playerid][pFraktion];
    SetSpawnInfo(playerid, SpielerInfo[playerid][pSkin], 0, F_spawns[fid][0], F_spawns[fid][1],F_spawns[fid][2],F_spawns[fid][3], 0, 0, 0, 0, 0, 0);
    SetPlayerColor(playerid, farben[fid][0]);
    SpawnPlayer(playerid);
    SendFormatText(playerid, BLAU, "SERVER: Herzlich Willkommen, %s.", PlayerName(playerid));
    if(SpielerInfo[playerid][pAdmin] >= 1)
    {
    SendFormatText(playerid, BLAU, "SERVER: Du hast Admin Rang "#COL_ORANGE"%d", SpielerInfo[playerid][pAdmin]);
    }
    return 1;
    }





    Dann kommt folgender Error:









    Code
    [Fri Jan 04 13:56:00 2013] Error (0): Function: mysql_store_result called when no result stored.





    Hoffentlich wisst ihr wo der fehler ist..

  • Muss gehen, zeig mir deinen aktuellen Quellcode.


    Eigentlich ja nicht..


    stock LoadAccount(playerid)
    {
    new query[512];
    format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", PlayerName(playerid));
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row(query, "|", mysql))
    {
    sscanf(query, "e<p<|>{i}s[24]s[64]iiiiis[64]s[24]i>", SpielerInfo[playerid]);
    mysql_free_result();
    print(query);
    }
    mysql_free_result();
    new fid = SpielerInfo[playerid][pFraktion];
    SetSpawnInfo(playerid, SpielerInfo[playerid][pSkin], 0, F_spawns[fid][0], F_spawns[fid][1],F_spawns[fid][2],F_spawns[fid][3], 0, 0, 0, 0, 0, 0);
    SetPlayerColor(playerid, farben[fid][0]);
    SpawnPlayer(playerid);
    SendFormatText(playerid, BLAU, "SERVER: Herzlich Willkommen, %s.", PlayerName(playerid));
    if(SpielerInfo[playerid][pAdmin] >= 1)
    {
    SendFormatText(playerid, BLAU, "SERVER: Du hast Admin Rang "#COL_ORANGE"%d", SpielerInfo[playerid][pAdmin]);
    }
    return 1;
    }

  • while(mysql_fetch_row(query, "|", mysql))
    Der dritte Parameter der funktion mysql_fetch_row gibt die ID der MySQL Verbindung an. Mich wundert es nur, das du sie hier angibst, aber bei den anderen mysql Funktionen nicht. Hat das einen bestimmten Grund? Wenn nein, nimm den letzten Parameter mal raus und schau obs funktioniert.

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

  • Hat keinen Grund, habe nur im Wiki den Parameter gesehen und diesen dann angegeben.


    Folgender Error im Log:


    Code
    [00:04:58] 13|Test|1EB1F56F7C1930C580B638E559524D48|5|0|0|1|105||0||0
    [00:04:58] [MySQL] Error (0): Function: mysql_store_result called when no result stored.


    Es werden auch keine Variablen gesetzt (skin, adminlevel).


    stock LoadAccount(playerid)
    {
    new query[512];
    format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", PlayerName(playerid));
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row(query, "|"))
    {
    sscanf(query, "e<p<|>{i}s[24]s[64]iiiiis[64]s[24]i>", SpielerInfo[playerid]);
    mysql_free_result();
    print(query);
    }
    mysql_free_result();
    new fid = SpielerInfo[playerid][pFraktion];
    SetSpawnInfo(playerid, SpielerInfo[playerid][pSkin], 0, F_spawns[fid][0], F_spawns[fid][1],F_spawns[fid][2],F_spawns[fid][3], 0, 0, 0, 0, 0, 0);
    SetPlayerColor(playerid, farben[fid][0]);
    SpawnPlayer(playerid);
    SendFormatText(playerid, BLAU, "SERVER: Herzlich Willkommen, %s.", PlayerName(playerid));
    if(SpielerInfo[playerid][pAdmin] >= 1)
    {
    SendFormatText(playerid, BLAU, "SERVER: Du hast Admin Rang "#COL_ORANGE"%d", SpielerInfo[playerid][pAdmin]);
    }
    return 1;
    }

  • entferne dein mysql_free_result();
    aus der while schleife zu dem



    sscanf(query, "p<|>e<{i}s[24]s[64]iiiiis[64]s[24]i>", SpielerInfo[playerid]);


    da p ein spezieler specifier ist und dieser kan nicht im enum verwendet werden