[MySQL] Errorid 1054 Unknown column

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


    habe bereits die SuFu und auch Google befragt, bekomme aber keine Lösung.


    Ich habe vor, ein Dynamisches System zu erstellen. Dazu sollen Koordinaten gespeichert werden.


    Der Code sie wie folgt aus:


    mysql_format(mycon,query,sizeof(query),"INSERT INTO `koords` (`X`,`Y`,`Z`,`A`) VALUES (`%f`,`%f`,`%f`,`%f`)",posx,posy,posz,posa);
    mysql_tquery(mycon,query,"","");


    Errorid 1054
    Unknown column ´1958.378296´ in ´field list´
    (null)
    INSERT INTO `koords` (`X`,`Y`,`Z`,`A`) VALUES (`1958.378296`,`1343.157227`,`15.374607`,`269.142487`)


    Meine MySQL Tabelle sieht wie folgt aus
    ID Type int Length 11 Decimals 0 Auto Increment
    X Typ Float Lenght 16 Decimals 6 (für Y, Z und A das selbe)


    Edit:: Fail, statt `%f` muss ich ja '%f' nehmen.
    Nun zu meinem nächste Problem. Auf bei den gespeicherten Koords, sollen Objekte entstehen. Nun wird der eintrag gespeichert, aber beim starten des Servers kein Objekt geladen.


    for(new i = 0; i < MAX_ATMS; i++)
    {
    mysql_format(mycon,query,sizeof(query),"SELECT * FROM `atm` WHERE `ID` = '%i'",i);
    mysql_tquery(mycon,query,"",""); mysql_store_result();
    new rows = mysql_num_rows();
    if(rows == 0) continue;
    AtmInfo[i][AtmX] = cache_get_field_content_float(0,"X");
    AtmInfo[i][AtmY] = cache_get_field_content_float(0,"Y");
    AtmInfo[i][AtmZ] = cache_get_field_content_float(0,"Z");
    AtmInfo[i][AtmA] = cache_get_field_content_float(0,"A");
    AtmInfo[i][erstellt] = true;
    AtmInfo[i][atmobjekt] = CreateObject(2942,AtmInfo[i][AtmX],AtmInfo[i][AtmY],AtmInfo[i][AtmZ]-0.5,0,0,AtmInfo[i][AtmA]);
    }

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

    Einmal editiert, zuletzt von Ryan_Crawley ()

  • Extra Thread ist ja quatsch, hier kann ich ja alles reinschreiben ^^


    Also angezeigt wird mir 0.000000 also Koords, wenn ich den printf "befehl" direkt unter mysql_tquery schreibe.
    Wenn ich das ganze hinter CreateObjekt plaziere, kommt nichts.

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

  • in den values darfst du die backticks nicht anwenden sondern die ' '


    Habe ich schon gemerkt, danke dir. Vllt kannst du bei dem anderen Problem noch mithelfen.

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

  • Wie gesagt, hast du es überhaupt probiert, es über ein extra Thread laufen zu lassen?


    L.G.


    Was meinst denn du damit, bin noch nicht soo lange mit MySQL dran.

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

  • mysql_function_query(mycon,query,true,"OnAtmCreate","i",i);
    forward OnAtmCreate(i);
    public OnAtmCreate(i)
    {
    new rows = mysql_num_rows();
    if(rows == 0) return 1;
    AtmInfo[i][AtmX] = cache_get_field_content_float(0,"X");
    AtmInfo[i][AtmY] = cache_get_field_content_float(0,"Y");
    AtmInfo[i][AtmZ] = cache_get_field_content_float(0,"Z");
    AtmInfo[i][AtmA] = cache_get_field_content_float(0,"A");
    AtmInfo[i][erstellt] = true;
    AtmInfo[i][atmobjekt] = CreateObject(2942,AtmInfo[i][AtmX],AtmInfo[i][AtmY],AtmInfo[i][AtmZ]-0.5,0,0,AtmInfo[i][AtmA]);


    }


    Mir ist gerade aufgefallen, dass du das continue vll falsch gesetzt hast.
    Bevor du meins ausprobierst ändere es in dein Code von
    if(rows == 0) continue;
    zu:
    [pwn]if(rows != 0) continue;[/pwn}]


    L.G.