Autos speichern nicht richtig...

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 Community,


    irgendwie speichern sich meine autos nicht ab, das einzigste was ich abspeichert ist autoid 1


    Also irgendwie wird dauernd alles nur auf auto id 1 gespeicherrt... die anderen ids werden zwar in mysql erstellt, aber werden nicht dort abgespeichert...


    Speichern und Laden:


    stock LoadFrakAuto(i){
    new var[256],var2[128];
    format(var2, sizeof(var2),"SELECT * FROM `frakautos` WHERE `autoid` = '%d'", i);
    self_mysql_queryEx(var2);
    mysql_store_result();
    while(mysql_fetch_row_format(var2,"|")){
    mysql_get_field("autoid",var); FAutos[i][autoid] = strval(var);
    mysql_get_field("autogestell",var ); FAutos[i][autogestell] = strval(var);
    mysql_get_field("fraktion",var); FAutos[i][fraktionsnummer] = strval(var);
    mysql_get_field("preis",var); FAutos[i][fraktionspreis] = strval(var);
    mysql_get_field("farbe1",var); FAutos[i][farbe1] = strval(var);
    mysql_get_field("farbe2",var); FAutos[i][farbe2] = strval(var);
    mysql_get_field("autox",var); FAutos[i][autox] = floatstr(var);
    mysql_get_field("autoy",var); FAutos[i][autoy] = floatstr(var);
    mysql_get_field("autoz",var); FAutos[i][autoz] = floatstr(var);
    mysql_get_field("autoa",var); FAutos[i][autoa] = floatstr(var);
    FAutos[i][Fahrzeugfraku] = CreateVehicle(FAutos[i][autogestell],FAutos[i][autox],FAutos[i][autoy],FAutos[i][autoz],FAutos[i][autoa],FAutos[i][farbe1],FAutos[i][farbe2],-1);
    }
    return 1;
    }
    stock SaveFrakauto(i){
    new query[900];
    format(query,sizeof query,"UPDATE `frakautos` SET `autoid`='%d',`autogestell`='%d',`fraktion`='%d',`preis`='%d',`farbe1`='%d',`farbe2`='%d',`autox`='%.2f',`autoy`='%.2f',`autoz`='%.2f',`autoa`='%.2f' WHERE `autoid`='%d'",
    i,FAutos[i][autogestell],FAutos[i][fraktionsnummer],FAutos[i][fraktionspreis],FAutos[i][farbe1],FAutos[i][farbe2],FAutos[i][autox],FAutos[i][autoy],FAutos[i][autoz],FAutos[i][autoa],i);
    mysql_query(query);
    strdel(query,0,sizeof(query));
    mysql_free_result();
    return 1;
    }


    Hoffentlich findet ihr den Fehler...
    Danke schonmal


    MfG


    Moritz

  • Was sagt denn der MySQL Log, wenn du die Fahrzeuge speichern lässt?


    Übrigens, das hier kannst du weg lassen:
    strdel(query,0,sizeof(query));
    mysql_free_result();
    Da du die Variable nicht mehr verwendest, ist es egal ob sie voll oder leer verfällt, und ein UPDATE Query hat kein Result, daher brauchst du das auch nicht leeren.

  • SQL
    [16:41:59] CMySQLHandler::Query(INSERT INTO `frakautos` (`autoid`) VALUES ('0')) - Successfully executed.
    [16:41:59] >> mysql_query( Connection handle: 1 )
    [16:41:59] CMySQLHandler::Query(UPDATE `frakautos` SET `autoid`='1',`autogestell`='596',`fraktion`='1',`preis`='2',`farbe1`='1',`farbe2`='79',`autox`='1617.63',`autoy`='-1645.35',`autoz`='13.52',`autoa`='349.45' WHERE `autoid`='1') - Successfully executed.
    [16:41:59] >> mysql_free_result( Connection handle: 1 )
    [16:41:59] CMySQLHandler::FreeResult() - Result was successfully free'd.


    Das und bei jedem Fahrzeug kommt autoid '1'

  • dcmd_fauto(playerid,params[])
    {
    frakauto[playerid] = Createfrakauto();
    LoadFrakAuto(frakauto[playerid]);
    ShowPlayerDialog(playerid,DIALOG_FAUTOH,DIALOG_STYLE_LIST,"Fraktionsautohaus","Streifenwagen Los Santos 40000$,","Kaufen","Abbrechen");
    return 1;
    }


    stock Createfrakauto()
    {
    new query[256];
    format(query, sizeof(query), "INSERT INTO `frakautos` (`autoid`) VALUES ('%d')", autoid);
    mysql_query(query);
    return true;
    }


    if(dialogid == DIALOG_FAUTOH)
    {
    if(response)
    {
    if(listitem == 0)
    {
    new Float:frakx,Float:fraky,Float:frakz,Float:fraka;
    GetPlayerPos(playerid,frakx,fraky,frakz);
    GetPlayerFacingAngle(playerid, fraka);
    FAutos[frakauto[playerid]][autox] = frakx; FAutos[frakauto[playerid]][autoy] = fraky; FAutos[frakauto[playerid]][autoz] = frakz; FAutos[frakauto[playerid]][autoa] = fraka; FAutos[frakauto[playerid]][fraktionspreis] = 2; FAutos[frakauto[playerid]][fraktionsnummer] = PlayerInfo[playerid][pLeader];
    FAutos[frakauto[playerid]][autogestell] = 596;
    FAutos[frakauto[playerid]][farbe1] = 1;
    FAutos[frakauto[playerid]][farbe2] = 79;
    SaveFrakauto(frakauto[playerid]);
    LoadFrakAuto(frakauto[playerid]);
    frakauto[playerid] = -1;
    }
    }
    }

  • stock Createfrakauto()
    {
    new query[256];
    format(query, sizeof(query), "INSERT INTO `frakautos` (`autoid`) VALUES ('%d')", autoid);
    mysql_query(query);
    return mysql_insert_id();
    }


    Dann dürfte es klappen. Wenn nicht, poste bitte den Log.