MySQL Problem bei Autosystem

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,


    ich habe gerade mein Autosystem "fertig" umgeschrieben und dabei ein Problem entdeckt. Ich kann mich in das Auto setzen und es zeigt mir auch den Dialog an, aber wenn ich auf Kaufen klicke passiert nichts. Im .log von der MySQL kommt auch kein Error, man sieht aber, dass er etwas abgefragt hat. Hier mal kurz der Abschnitt der File:



    Man sieht, dass er die Abfrage 2 mal macht und bei mysql_num_rows 0 raus kommt. Hier mal der Code für die Abfrage:


    stock mysql_CheckAuto(CName[],Slot)
    {
    new Query[128],count;
    format(Query, sizeof(Query), "SELECT * FROM pAutos WHERE aOwner='%s' AND aCarkey='%i'", CName,Slot);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }


    Aber wenn ich auf kaufen klicke passiert gar nichts. Der Code von "OnDialogResponse":
    else if(dialogid == DIALOG_AUTOKAUF)
    {
    if(!response)return RemovePlayerFromVehicle(playerid);
    if(response)
    {
    new vid = GetPlayerVehicleID(playerid);
    for(new i = 0; i < sizeof Buycars; i++)
    {
    if(vid == kaufauto[i])
    {
    for(new a=0;a < MAX_CARS_PER_PLAYER;a++){
    if(mysql_CheckAuto(PlayerName(playerid),a) == 0){
    AutoKaufen(playerid,a,i);
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    else continue;
    }
    }
    }
    SendClientMessage(playerid,COLOR_GREY," Du besitzt schon die maximale Anzahl an Fahrzeugen!");
    }
    }


    Ich frage mich was ich hier falsch mache ?( Ich hatte schon mehrmals überprüft und nachgedacht, aber nichts gefunden. Es wäre super lieb von euch wenn ihr mir helfen könnten. Einen schönen Sonntag noch :)


    Mit freundlichen Grüßen
    Ch4oS

  • Also das else kann ja auch weg bleiben stimmt, aber es klappt immer noch nicht :/ Werde mir mal kurz den ganzen Prozess printen lassen


    edit: Hab's hinbekommen, nur ich habe nun noch ein Problem :/ wenn ich mein Auto modifiziere, dann speichert er das nicht. Es ist auch ein Error da in der log. Hier mal der Error:


    Bei aCarkey ist nichts :/ hier mal der Code von OnVehicleMod:
    new query[512];
    format(query,sizeof query,"UPADTE `pAutos` SET `aSpoiler` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],0),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aHood` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],1),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aRoof` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],2),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aSideskirt` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],3),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aLamps` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],4),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aNitro` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],5),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aExhaust` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],6),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aWheels` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],7),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aStereo` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],8),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aHydraulics` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],9),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aFrontBumper` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],10),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aRearBumper` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],11),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aVentRight` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],12),PlayerName(p),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aVentLeft` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],13),PlayerName(p),i);
    mysql_query(query);

  • jap aber dafür brauchst du nicht für jeden 1 query, kannst auch mehrere in einem packen ;)

    format(query,sizeof query,"UPADTE `pAutos` SET `aSpoiler` = '%i',`aHood` = '%i' WHERE `aOwner` = '%s' AND `aCarkey` = '%s'",GetVehicleComponentInSlot(Spielercar[p][i],0),GetVehicleComponentInSlot(Spielercar[p][i],1),PlayerName(p),i);



    so zb

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Funktioniert imemr noch nicht :( Er 'veschluckt einige teile wie man jetzt im log sehen kann:

    Code
    (Error ID: 1064, 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 'UPADTE `pAutos` SET `aColor1` = '1' WHERE `aOwner` = 'ChaoZz__' AND `aCarkey` = ' at line 1)
    (Error ID: 1064, 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 'UPADTE `pAutos` SET `aColor2` = '0' WHERE `aOwner` = 'ChaoZz__' AND `aCarkey` = ' at line 1)
    (Error ID: 1064, 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 'UPADTE `pAutos` SET `aSideskirt` = '0' WHERE `aOwner` = 'ChaoZz__' AND `aCarkey`' at line 1)


    Edit:
    Am besten sieht man das beim Parken:

  • Speichere das gleich wenn es passiert, wobei ich denke das umzuschreiben:
    if(strcmp(cmd, "/parken", true) == 0 || strcmp(cmd, "/park", true) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_GREY," Du musst in einem Fahrzeug sitzen, um es zu parken!");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_GREY," Du musst der Fahrer dieses Fahrzeuges sein, um es zu parken!");
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i = 0; i < MAX_CARS_PER_PLAYER; i++)
    {
    if(vehicleid == Spielercar[playerid][i])
    {
    new Float:x, Float:y, Float:z, Float:a;
    GetVehiclePos(vehicleid,x,y,z);
    GetVehicleZAngle(vehicleid,a);
    Autos[playerid][i][aPosX] = x;
    Autos[playerid][i][aPosY] = y;
    Autos[playerid][i][aPosZ] = z;
    Autos[playerid][i][aPosA] = a;
    new query[512];
    format(query,sizeof query,"UPADTE `pAutos` SET `aPosX` = '%f' WHERE `aOwner` = '%s' AND `aCarkey` = '%i'",x,PlayerName(playerid),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aPosY` = '%f' WHERE `aOwner` = '%s' AND `aCarkey` = '%i'",y,PlayerName(playerid),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aPosZ` = '%f' WHERE `aOwner` = '%s' AND `aCarkey` = '%i'",z,PlayerName(playerid),i);
    mysql_query(query);
    format(query,sizeof query,"UPADTE `pAutos` SET `aPosA` = '%f' WHERE `aOwner` = '%s' AND `aCarkey` = '%i'",a,PlayerName(playerid),i);
    mysql_query(query);
    return SendClientMessage(playerid,COLOR_GREEN,"Dein Fahrzeug wurde geparkt!");
    }
    else continue;
    }
    SendClientMessage(playerid,COLOR_GREY,"Dir gehört dieses Auto nicht!");
    return 1;
    }