MySQL Werte Abfragen (Waffenstand)

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
  • Guten Mittag,
    ich möchte aus meiner MySQL Tabelle 'waffenlager' auslesen, wieviele Waffen von jeder Waffe, jede Fraktion 'FraktID' hat, und das ganze in einem Dialog wiedergeben.


    Das ist mein Code, den mir Beavis: geschrieben hat, der soweit auch Fehlerfrei (beim Compilen Zumindest) funktioniert.
    stock ReturnWeapons(TeamID, Waffe[])
    {
    new q[128];
    format(q,128,"SELECT * FROM `waffenlager` WHERE `FraktID` = '%d';",TeamID);
    mysql_query(q);
    mysql_store_result();
    if(mysql_num_rows())
    {
    if(mysql_retrieve_row())
    {
    mysql_fetch_field_row(q,Waffe);
    }
    }
    else
    {
    q = "-1";
    }
    mysql_free_result();
    return strval(q);
    }


    Und hier kommt ReturnWeapons sozusagen zum Einsatz:
    format(string, sizeof(string),"Die Waffen\t\tMunition:\nDesert Eagle: \t\t%d\nUZI: \t\t%d\nAK-47: \t\t%d\nShotgun: \t\t%d",ReturnWeapons(PlayerInfo[playerid][pMember], "Deagle"),ReturnWeapons(PlayerInfo[playerid][pMember], "uzi"),ReturnWeapons(PlayerInfo[playerid][pMember], "AK"),ReturnWeapons(PlayerInfo[playerid][pMember], "shotgun"));
    ShowPlayerDialog(playerid, DIALOG_WAFFENSTAND, DIALOG_STYLE_LIST, "Waffenstand", string, "Ok", "");


    Nun mein Problem:
    Als Wert wird ingame im Dialog '-1' angegeben, obwohl der Wert der jeweiligen Waffen deutlich über 1 steht. (4-30)


    Würde mich wirklich freuen, wenn mir jemand helfen könnte! :thumbup:


    Liebe Grüße,
    Montero

  • Nimm mal das hier
    stock ReturnWeapons(TeamID, Waffe[])
    {
    new q[128];
    format(q,128,"SELECT `%s` FROM `waffenlager` WHERE `FraktID` = '%d';",Waffe,TeamID);
    mysql_query(q);
    mysql_store_result();
    new int = mysql_fetch_int();
    mysql_free_result();
    return int;
    }

    All in all it's just another brick in the wall