Floats speichern nicht -> 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
  • Hallo liebe Community,
    Ich wende mich mal wieder mit einem kleinen Problem an euch.


    Also, für mein Dynamisches Haus-System müssen natürlich Floats gespeichert werden, in dem fall die Koordinaten.
    Die wollen aber nicht. Es werden immer willkürlich falsche Werte wie "100.000" eingespeichert, obwohl ich dort gar nicht stehe.
    Mein Code (Mit debug):


    new Float:coord[4]; GetPlayerPos(playerid,coord[0],coord[1],coord[2]); GetPlayerFacingAngle(playerid,coord[3]);
    printf("**Koordinaten** X: %f | Y: %f | Z: %f | Angle: %f",coord[0],coord[1],coord[2],coord[3]);
    format(query,sizeof(query),"INSERT INTO user_houses (X,Y,Z,Angle,Preis,Interior,Owner) VALUES ('%f','%f','%f','%f','%d','%d','Keiner')",coord[0],coord[1],coord[2],coord[3],preis,inte);
    mysql_free_result(); mysql_query(query); mysql_free_result();
    Die Koordinaten werden richtig ausgelesen und in den Variablen gespeichert.
    Was ich schon versucht habe:

    • Query anpassen (Speicherung der Koordinaten weiter Vorne/Hinten)
    • Anpassung der Datenbank (Typ: Float | Length: 8 | decimals: 6), auch schon mit Length und Decimals rumgespielt und den Typ in "double" geändert.

    Bevor ich das ganze jetzt versuche als String in die Datenbank zu speichern, wollte ich lieber mal fragen, ob jemand vielleicht eine Lösung für mein Problem parat hat.
    MfG Firer

  • format(query,sizeof(query),"INSERT INTO user_houses SET X = '%f',Y = '%f',Z = '%f',Angle = '%f',Preis = '%d',Interior = '%d',Owner = 'Keiner'",coord[0],coord[1],coord[2],coord[3],preis,inte);
    Dürfte eig. gehen

    Funktioniert nicht.
    Hier mal der Debugg:


    Ausgelesene Daten aus GetPlayerPos/GetPlayerFacingAngle:

    Code
    [22:12:50] **Koordinaten** X: -1983.851318 | Y: 126.315452 | Z: 27.687500 | Angle: 257.321594


    Gespeicherte Daten:

    Code
    [22:12:50] X: 0.000000 | Y: 100.000000 | Z: 27.687500 | Angle: 100.000000

  • Kleine Übersicht...

  • Hmm.. fehler in deiner Syntax?
    Ich finde da zwar gerade nichts aber:

    Code
    [Tue Jan 31 22:29:19 2012] Function: mysql_free_result executed.
    [Tue Jan 31 22:29:19 2012] Function: mysql_query executed: "INSERT INTO user_houses VALUES NULL, '1500', '5', '15.0', '13.0', '20.0', '235.0', 'Owner'" with result: "1".
    [Tue Jan 31 22:29:19 2012] Error (0): Failed to exeute query. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL, '1500', '5', '15.0', '13.0', '20.0', '235.0', 'Owner'' at line 1.
    [Tue Jan 31 22:29:19 2012] Function: mysql_free_result executed.