MySQL Query 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
  • Hey,
    Der MySQL Query hier funktioniert nicht:

    //Häuser LADEN

    mysql_query("SELECT * FROM `hauser`");
    mysql_store_result();
    new idd,bes,vwww,interrr,prei;
    new str3[512];
    while(mysql_fetch_row(str3))
    {
    sscanf(str3, "p<|>ifffiiii",idd,xxx,yyy,zzz,bes,vwww,interrr,prei);
    Hauser[idd][ixx] = xxx;
    Hauser[idd][iyy] = yyy;
    Hauser[idd][izz] = zzz;
    Hauser[idd][besitzerr] = bes;
    Hauser[idd][vww] = vwww;
    Hauser[idd][interii] = interrr;
    Hauser[idd][preiss] = prei;
    Hauser[idd][pick] = CreatePickup(1273,1,xxx,yyy,zzz);
    format(query, 128, "HAUS %f %f %f bes %d vw %d inter %d preis %d",xxx,yyy,zzz,bes,vwww,interrr,prei);
    print(query);
    }
    mysql_free_result();

    Wird in OnGameModeInit verwendet. Der Query wird garnicht erst ausgeführt, ich habs mit dem mysql Debug versucht, da wird er garnicht angezeigt. Auch der print wird nicht in der Konsole gezeigt.
    Hier zum Vergleich ein Query der funktioniert:


    mysql_query("SELECT * FROM `interiors`");
    mysql_store_result();
    new Float:xxx,Float:yyy,Float:zzz,Float:angl,inter;
    new pp; pp = 0;
    new str2[512];
    while(mysql_fetch_row(str2))
    {
    pp +=1;
    sscanf(str2, "p<|>iffffi",ID,xxx,yyy,zzz,angl,inter);
    Intss[pp][IDD] = ID;
    Intss[pp][ix] = xxx;
    Intss[pp][iy] = yyy;
    Intss[pp][iz] = zzz;
    Intss[pp][An] = angl;
    Intss[pp][Interior] = inter;
    format(query, 128, "INTSS id %d x %f y %f z %f an %f int %i",ID,xxx,yyy,zzz,angl,inter);
    print(query);
    }
    mysql_free_result();


    MfG


    Edit: Und ja, das heist alles mit Absicht Hauser und nicht Häuser, da ä oft nicht angenommen wird.


    Edit: Kann mir den niemand Helfen? Ich brauche ne Lösung

    Einmal editiert, zuletzt von Intrepidus ()

  • Woher willst du mit deinem Code wissen, ob die Query ausgeführt wird ?
    Es sieht eher so aus, als hieße die Tabelle nicht "hauser", und er würde daher keine Ergebnisse returnen, wodurch die Schleife wiederum nicht ausgeführt wird...

  • @ Palme, nein


    @ Trooper
    doch, die Tabelle heist hauser
    Wieschon gesagt, auch im mysql_debug wird der Query nicht angezeigt, und der print auchnicht


    Edit:
    Funktioniert leider immer noch nicht....
    Der Query wird überhauptnicht ausgeführt, wird in mysql Debug nicht angezeigt undso...
    Sieht denn niemand einen Fehler?


    Edit2: Sooo, habe den "Fehler" gefunden.
    Anscheinend verträgt OnGameModeInit MySQL nicht. Nach 2 Querys (Autos und Business Laden) weigert sich der Server Strikt weitere auszuführen.
    Habe diesen Query nun per Timer (nach 3 sekunden) Ausführen lassen, und siehe da, es geht.
    Weis jemand warum? Die Lösung ist nur bedingt nützlich

    2 Mal editiert, zuletzt von Intrepidus ()

  • Garnichts, seltsamerweise. Sobald der Zweite Query in OnGameModeInit passiert einfach garnichts mehr, es wird einfach alles abgebrochen.



    //INTERIORS LADEN
    mysql_query("SELECT * FROM `interiors`");
    mysql_store_result();
    new Float:xxx,Float:yyy,Float:zzz,Float:angl,inter;
    new pp; pp = 0;
    new str2[512];
    while(mysql_fetch_row(str2))
    {
    pp +=1;
    sscanf(str2, "p<|>iffffi",ID,xxx,yyy,zzz,angl,inter);
    Intss[pp][IDD] = ID;
    Intss[pp][ix] = xxx;
    Intss[pp][iy] = yyy;
    Intss[pp][iz] = zzz;
    Intss[pp][An] = angl;
    Intss[pp][Interior] = inter;
    format(query, 128, "INTSS id %d x %f y %f z %f an %f int %i",ID,xxx,yyy,zzz,angl,inter);
    print(query);
    }
    mysql_free_result();


    Das ist das Letzte in OnGameModeInit. Alles was danach kam wurde einfach Ignoriert. Der Query hier oben geht jedoch

  • Wie in dem Code oben gezeigt wird der Letzte Print ganz unten
    format(query, 128, "INTSS id %d x %f y %f z %f an %f int %i",ID,xxx,yyy,zzz,angl,inter);
    print(query); Ausgeführt. Und das auch Korrekt.
    Nur, alles was NACH der Schleife kommt, funktioniert einfach nicht.

  • Also, wenn ich das richtig verstehe:
    /*


    Hier funktioniert alles


    */
    mysql_query("SELECT * FROM `interiors`");
    mysql_store_result();
    new Float:xxx,Float:yyy,Float:zzz,Float:angl,inter;
    new pp; pp = 0;
    new str2[512];
    while(mysql_fetch_row(str2))
    {
    pp +=1;
    sscanf(str2, "p<|>iffffi",ID,xxx,yyy,zzz,angl,inter);
    Intss[pp][IDD] = ID;
    Intss[pp][ix] = xxx;
    Intss[pp][iy] = yyy;
    Intss[pp][iz] = zzz;
    Intss[pp][An] = angl;
    Intss[pp][Interior] = inter;
    format(query, 128, "INTSS id %d x %f y %f z %f an %f int %i",ID,xxx,yyy,zzz,angl,inter);
    print(query);
    }
    mysql_free_result();


    /*


    Hier nicht mehr


    */
    ?


    Welches plugin benutzt du?
    Läuft die schleife bis zum ende durch?
    hast du mal probiert den inhalt der schleife auszukommentieren? Also einfach um zu schauen ob es definitiv an der schleife liegt, oder ob es nicht doch der inhalt ist der ärger macht.
    while(mysql_fetch_row(str2))
    {
    /*pp +=1;
    sscanf(str2, "p<|>iffffi",ID,xxx,yyy,zzz,angl,inter);
    Intss[pp][IDD] = ID;
    Intss[pp][ix] = xxx;
    Intss[pp][iy] = yyy;
    Intss[pp][iz] = zzz;
    Intss[pp][An] = angl;
    Intss[pp][Interior] = inter;
    format(query, 128, "INTSS id %d x %f y %f z %f an %f int %i",ID,xxx,yyy,zzz,angl,inter);
    print(query);*/
    }

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

  • Verwende MySQL von G-sTyLeZzZ, das von StrickenKid hat mir irgendwie nur Probleme bereitet...


    Wenn ich den Inhalt auskommentiere so wie du gezeigt hast, funktioniert das Folgende

  • Dann Probier das mal aus, und schau was die console sagt:
    while(mysql_fetch_row(str2))
    {
    pp +=1;
    printf("%d | 1",pp);
    sscanf(str2, "p<|>iffffi",ID,xxx,yyy,zzz,angl,inter);
    printf("%d | 2",pp);
    Intss[pp][IDD] = ID;
    printf("%d | 3",pp);
    Intss[pp][ix] = xxx;
    printf("%d | 4",pp);
    Intss[pp][iy] = yyy;
    printf("%d | 5",pp);
    Intss[pp][iz] = zzz;
    printf("%d | 6",pp);
    Intss[pp][An] = angl;
    printf("%d | 7",pp);
    Intss[pp][Interior] = inter;
    printf("%d | 8",pp);
    format(query, 128, "INTSS id %d x %f y %f z %f an %f int %i",ID,xxx,yyy,zzz,angl,inter);
    printf("%d | 9",pp);
    print(query);
    printf("%d | 10",pp);
    }

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

  • Jetzt hab ichs auch bemerkt.
    Herzlichen Glückwunsch, du bist der 10000. der den Arrays nen zu hohen Index verpasst hat!
    new str2[512]; //Falsch
    new str2[128]; //Richtig
    Aber ernsthaft, komischerweise passiert das hier immer öfters oO

  • Beim letzten steht:
    [23:04:22] INTSS id 26 x 82.938003 y 1322.680053 z 1083.869995 an 4.000000 int 9
    [23:04:22] 26 | 10
    [23:04:22] 27 | 1
    [23:04:22] 27 | 2


    Die Daten Bei ID 26 aus der Tabelle:
    26 82.938 1322.68 1083.87 4 9 0 3


    Sieht im Grunde genauso aus wie alle anderen


    Edit: @ Pain, ich BRAUCHE hier so einen großen String, da ich sehr viele Daten lade. Die Müssen alle in einen Passen


    Edit2: Auch wenn ichs so änder wie du meinst bleibt der Fehler

  • Bei den anderen Querys gehts auch.
    Naja wenn du meinst stell ichs halt runter, aber das Problem is trotzdem noch da.

  • Hier hast du mal ein Bild:



    edit: @ Pain, das ist im Grunde das Selbe, nur kürzer^^