GetHausID Funktioniert nicht

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 Tag,


    momentan arbeite ich an einem Haus system. Abe ich komme nicht mit diesen Stock weiter.


    stock GetHausID(playerid)
    {
    new query[200], Get[130];
    format(query, 200, "SELECT `ID` FROM `hauser` WHERE `Besitzer` = '%s'", SpielerInfo[playerid][p_Name]);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }


    Mit diesem Stock möchte ich erreichen, dass die Haus ID rausgelesen wird. Und wenn der User kein Haus besitzt , soll einfach eine Meldung kommen mit "Du besitzt kein Haus". Aber es wird nichts rausgelesen.


    Nebenbei:


    über /einstellungen öffnet sich bei mir ein DIALOG wo die Option "Haus" ist. Aber wenn man drauf geht soll erst abgefragt werden ob er überhaupt ein haus besitzt. Und wenn ja dann soll die Richtige Haus ID rausgelesen werden. Aber wie es aussieht funktion das nicht? Wieso?


    //EDIT:
    MySQL System kommt von Jeffry

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • Aber wie es aussieht funktion das nicht? Wieso?

    Was steht denn in deiner Datenbank? :)


    Wie sieht die Tabelle denn dafür aus...


    printe dir mal das Query...füge es in z.B. phpmyadmin ein..schau ob es da die richtigen Resultate liefert...


    Get ist bei dir ein String..du willst aber einen Integer (da eine ID ja ein integer ist).


    Eventuell am Ende noch return strval(Get); nutzen ^^


    Hast du da keine Tag-Mismatch Warnings o.ä. bekommen...wie verarbeitest du denn die Funktion ? ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • MySQL LoG


    Tabelle:
    https://picload.org/view/rpalwadi/unbenannt.png.html



    Eventuell am Ende noch return strval(Get); nutzen -> wurde geändert (deswegen sind die warnings weg.)


    //edit warnings wurden behoben.


    //EDIT:


    Habe denn Code jetzt etwas bearbeitet. Aber funktioniert immer noch nicht?


    stock GetHausID(playerid)
    {
    new Query[200],Name[MAX_PLAYER_NAME],count;
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name, Name);
    format(Query, sizeof(Query), "SELECT * FROM `hauser` WHERE `Besitzer` = '%s'", Name);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    if(count == 0)
    {
    SendClientMessage(playerid, Farbe_Rot, "[FEHLER]"Chat_Weiss" Du besitzt kein Haus/MieteHaus.");
    return 1;
    }
    else if(count == 1)
    {
    new query[200], Get[130];
    format(query, 200, "SELECT `ID` FROM `hauser` WHERE `Besitzer` = '%s'", SpielerInfo[playerid][p_Name]);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return strval(Get);
    }
    return 1;
    }

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

    Einmal editiert, zuletzt von [KoSoVa] ()

  • Sind im Server-Log irgendwelche Errors oder Fehler?


    printe mal über dem return, was der Wert von Get ist :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Fehler kommen keine.


    Habe es jetzt mal geprintet:


    Ich brauche die ID 4 (habe es gerade geändert von 1 auf 4 zum testen.)
    und es kommt die ID 52??


    Hier der Code aus der Mysql_log


    Hier der code aus der LOG:


    und jetzt nocheinmal der momentane Code:
    stock GetHausID(playerid)
    {
    new Query[200],Name[MAX_PLAYER_NAME],count;
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name, Name);
    format(Query, sizeof(Query), "SELECT * FROM `hauser` WHERE `Besitzer` = '%s'", Name);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    if(count == 0)
    {
    SendClientMessage(playerid, Farbe_Rot, "[FEHLER]"Chat_Weiss" Du besitzt kein Haus/MieteHaus.");
    return 1;
    }
    else if(count == 1)
    {
    new query[200], Get[130];
    format(query, 200, "SELECT `ID` FROM `hauser` WHERE `Besitzer` = '%s'", SpielerInfo[playerid][p_Name]);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    printf("HAUS ID: || %i || ", Get);
    return strval(Get);
    }
    return 1;
    }


    //EDIT: habe gerade noch getestet mit einen anderem Namen, und ja das funktionert halt, also die meldung kommt das ich kein Haus besitze.

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • Du nutzt %i, dabei ist Get noch ein String.


    Wenn, dann müsstest du %s nutzen.


    Allerdings kann man auch so ablesen was die wirkliche Zahl ist und zwar 52 Ascii entspricht der Zahl 4


    Somit sehen wir, dass das System funktioniert! :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ja klar :D


    Aber ich meine halt, er soll ja Intger rauslesen und nicht einen String? Sonst gibt er mir ja immer die ID 52? Oder passt das so?


    Ah ich sehe, das funktioniert so . Danke dir Kaliber! :)

    Mit freundlichen Grüßen
    [KoSoVa] :klugs: