SetPlayerSkin | MySQL | Bug

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 Abend liebe Brotfische,
    Und zwar habe ich folgendes Problem:


    Wenn ich duty gehe als Polizist macht er folgende Abfrage:


    SQL
    new string1[3],string2[3];
    format(string1,sizeof(string1),"%d",SpielerInfo[playerid][sFraktion]);
    format(string2,sizeof(string2),"%d",SpielerInfo[playerid][sRank]);
    SetPlayerSkin(playerid,mysql_GetInt("skinordnung", string2, "frakid", string1));


    Er sollte eigentlich die SkinID Abfragen die in der Spalte 6 steht in dem Fall 288 aber er setzt mir die SkinID 6.
    Weiß jemand wo der Fehler liegt ? Danke im vorraus. :)

  • Poste bitte den MySQL-Debug-Log.
    Schalte dazu den Debug-Modus deines MySQL Plugins an.



  • SELECT 6 FROM skinordnung WHERE frakid = '1'
    Dort wo die 6 steht gehört der Spaltenname hin, in dem die Skins gespeichert sind.


    SetPlayerSkin(playerid,mysql_GetInt("skinordnung", "SPALTENNAMEHIER", "frakid", string1));


    Wenn du damit nichts anfangen kannst, dann poste mal noch ein Bild deiner Datenbank, auf der man den Tabellenname und die Spalten sieht.

  • SELECT 6 FROM skinordnung WHERE frakid = '1'
    Dort wo die 6 steht gehört der Spaltenname hin, in dem die Skins gespeichert sind.


    SetPlayerSkin(playerid,mysql_GetInt("skinordnung", "SPALTENNAMEHIER", "frakid", string1));


    Wenn du damit nichts anfangen kannst, dann poste mal noch ein Bild deiner Datenbank, auf der man den Tabellenname und die Spalten sieht.



    Schau oben auf meinen ersten Beitrag. Dort benutze ich den spalten Namen. Er liest halt die 6 ab wegen der Spalte die steht für den 6ten Rang. Aber er soll das Auslesen was dort in der Spalte drinnen steht was er aber nicht macht.

  • Ich sehe da keinen Spaltenname.
    Ich sehe, dass du aus der Tabelle "skinordnung" die Spalte string2 (=6) ausließt, und zwar dort, wo frakid = string 1 (=1) ist.


    Daher auch das falsche MySQL-Query.
    SELECT 6 FROM skinordnung WHERE frakid = '1'
    Das macht SO keinen Sinn.


    Es müsste in der Art und Weise sein:
    SELECT skinID FROM skinordnung WHERE frakid = '1'
    (skinID = der Name der Spalte in der die Skin IDs stehen, in der Tabelle skinordnung.)



    Wie heißt die Spalte in der die Skin-IDs gespeichert werden?


  • Es gibt die Spalte frakid danach die spalte 1,2,3,4,5 und 6. Je nach dem welchen Rang er hat, soll er auch die Spalte nehmen.

  • Aha. Ich bin mir nicht sicher ob MySQL oder das Plugin das verkraftet einen Spaltennamen nur aus Zahlen, scheint mir schleierhaft.
    Ändere die Spaltennamen dann von z.B. "6" auf "spalte6".


    Entsprechend:
    format(string2,sizeof(string2),"spalte%d",SpielerInfo[playerid][sRank]);
    string2[10]


    Wenn es nicht tut, nochmal den Debug Log zeigen, und dann einen Screenshot der Tabellenstruktur.



    ----
    Post unten:
    @ICookie: Ok. Danke, Dir auch!

  • Aha. Ich bin mir nicht sicher ob MySQL oder das Plugin das verkraftet einen Spaltennamen nur aus Zahlen, scheint mir schleierhaft.

    Damit wäre MySQL wohl aufgeflogen ;)
    Hat sich damit erledigt.


    Lösung:

    format(string,sizeof(string),"%d",SpielerInfo[playerid][sRank]);
    //Wird zu:
    format(string,sizeof(string),"Rang%d",SpielerInfo[playerid][sRank]);


    Ich bedanke mich recht herzlich, gute Nacht! :thumbup: