Falsche MySQL-Ausgabe?

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 Leute!


    Ich hab ein kleines Problem. Wenn ich bei meinem Carsystem ein Auto kaufe, ruf ich eine Funktion auf, die das Fahrzeug in eine MySQL-Tabelle schreibt:



    //---------------MySQLVehicleCreate--------
    stock MySQLVehicleCreate(vehicleid)
    {
    MySQLCheck();
    mysql_query("INSERT INTO vehicles (felder) VALUES (inhalte)");
    new data[MAX_STRING];
    mysql_query("SELECT MAX(vID) FROM vehicles");
    mysql_store_result();
    mysql_fetch_field("vID",data);
    Vehicle[vehicleid][vID] = strval(data);
    format(data,sizeof(data),"vID: %d, data: %s",Vehicle[vehicleid][vID],data);
    SendClientMessageToAll(C_GREEN, data);
    return 0;
    }


    Allerdings gibt er mir da bei vID 0 aus und bei data gar nichts!
    In der Tabelle ist aber auch alles da und die vID ist 78, also sollte es eigentlich auch 78 ausgeben!


    Wenns euch hilft: ich benutze das Plugin von Strickenkid.


    Ich hoffe jemand kann mir helfen..


    MFG selEcT

  • mysql_query("INSERT INTO vehicles (felder) VALUES (inhalte)");
    Ich gehe mal davon aus, dass hier etwas gewaltig falsch ist...


    //edit:
    Und nicht nur da...


    Du solltest also zuerst MySQL verstehen lernen,
    bevor du sowas machst ;)

  • Hi


    Ich gehe mal stark davon aus, dass Du mehrere fahrzeuge in der selben Tabelle speicherst, also musst Du mit WHERE arbeiten:


    grob gesagt:
    SELECT blabla FROM vehicles WHERE lala = lalal



    müsste ich nicht, da ich ja die abfrage mit MAX mache, und da gibt er mir nur einen wert aus (und das immer --> auto inkrement!)


    Trooper:


    und wie erklärst du dir dann, das alles richtig in der tabelle ist? :D die vID wird dort aber nicht reingeschrieben --> auto inkrement.
    was soll denn noch falsch sein? -.-'

  • Da steht connectionhandle ... Ist ja auch egal
    Diese Abfrage: SELECT MAX(vID) FROM vehicles umgeändert bei mir auf mein Haus System gibt nen Feld aus das den Wert hat...
    Sollte also vllt so funzen:

    mysql_query("SELECT MAX(vID) FROM vehicles");
    mysql_store_result();
    mysql_fetch_field("MAX(vID)",data);


    Bei mir hies das Feld MAX(hID) also fast das selbe eigentlich ... Habs aber nicht probiert