Haussystem Fehler Mysql

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
  • Ich habe folgendes Problem,


    ich möchte hier über die ID, einen wert auslesen lassen:

    Code
    mysql_GetString("haeuser", "Besitzer", "hID", i);



    Allerdings erlaubt dies dieser Befehl nicht :
    stock mysql_GetString(Table[], Field[], Where[], Is[])


    Der passende Fehler:

    Code
    error 035: argument type mismatch (argument 4)



    Wie umgehe ich das ganze?

  • Daraus folgt bei weiterem dieser Fehler:



    Code
    for(new i;i<MAX_HOUSES;i++)
        {
            new str[16];
    		format(str, 16, "%d", i);
            mysql_GetString("haeuser", "Besitzer", "hID", str);
    
            HausInfo[str][pID] = mysql_GetInt("haeuser", "hID", "hID", str);
        }


    Code
    (926) : error 033: array must be indexed (variable "str")
  • Die hID in der Datenbank bleibt weiterhin ein Integer.


    Eine Frage noch.


    Ich möchte das beim Haus-Laden, es aus der Schleife geht falls es kein weiteren Eintrag in der Datenbank gibt.
    Sprich es sind 4 Häuser eingetragen, und wenn kein Haus mehr eingetragen ist, bricht die Schleife ab.
    Wie stell ich das an?

  • Kommt auf deine Schleife drauf an.
    Generell mit "break;".


    Du kannst abfragen, ob z.B. der Name des Hauses der zurückgegeben wird leer ist (strlen(name) == 0), falls ja: break;


    Wenn du nicht weißt wie, poste deine Schleife.


    So hatte ich es versucht:


    Code
    for(new i=1;i<5;i++)
        {
            new str[16];
    		format(str, 16, "%d", i);
            if(mysql_GetInt("haeuser", "hLevel", "hID", str)<3) break;
    
    
    
            HausInfo[i][hID] = mysql_GetInt("haeuser", "hID", "hID", str);
            HausInfo[i][hLevel] = mysql_GetInt("haeuser", "hLevel", "hID", str);


    Das Problem war wenn ich die if-Abfrage drin habe, wird kein Haus ausgelesen.
    Klammer ich diese aus steht folgendes in meinem Log:

    Code
    [17:18:09] <-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!
    [17:18:09] -> Haus 1 wurde geladen!
    [17:18:09] -> Haus -1 wurde geladen!
    [17:18:09] -> Haus -1 wurde geladen!
    [17:18:09] -> Haus -1 wurde geladen!
    [17:18:09] <-> Haeuser wurden erfolgreich geladen!


    Nur zur Info, es existiert nur Haus 1!