autos aus datenbank löschen

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
  • Guten Morgen


    Mein Bruder meinte ich soll für autos entfernen es so schreiben:
    cmd:autoentfernen(playerid,params[])
    {
    if(!isAdmin(playerid,8))
    return SendClientMessage(playerid,helblau,"Du hast nicht die passende Rechte dafür!");
    new mID,pID;
    if(sscanf(params,"uu",pID,mID))
    return SendClientMessage(playerid,helblau,"Benutze: /autosetzen [playerid] [model]");
    if(mID<400||mID>611)
    return SendClientMessage(playerid,rot,"Ungültige Modelid!");
    if(!IsPlayerInAnyVehicle(playerid))
    return SendClientMessage(playerid,grün,"Sie befinden sich in kein Fahrzeug/Zug!");
    new string3[128],string4[128];
    format(string3,sizeof(string3)), "DELETE from Autos WHERE id= %u"
    format(string4, sizeof(string4), "Du hast erfolgreich das Auto mit der ID %u gelöscht!", mID);
    DestroyVehicle(GetPlayerVehicleID(playerid));
    return 1;
    }
    er hat sich einfach dann verpisst nach dem er es so hinterlassen hatte.
    nun die frage würde es so gehen oder nicht?


    Wenn nicht bitte ich hiermit um hilfe.

  • Sowie der Code aussieht hast du kein Enum.
    Sind die Fahrzeuge überhaupt in der Datenbank?
    Du möchtest das Auto mit der ID löschen aber wie, wenn er nicht einmal die kennt?
    DELETE FROM tabelle WHERE modelID ='%i', vID


    Könnte gehen, aber das Problem währe er würde jedes Auto mit dieser ModelID löschen.
    Würde dir raten mach ein Enum, müsstest halt jedes Auto dann in der Datenbank haben.

  • format(string3,sizeof(string3)), "DELETE from Autos WHERE id= %u"



    also da musst du angeben was denn gelöscht werden soll,
    wenn alles gelöscht werden soll dann schreibe es so


    format(string3,sizeof(string3)), "DELETE * from Autos WHERE id= %u


    andernfalls musst du jede Spalte einzelnt angeben, bzw kannst dafür dann auch UPDATE benutzen und die audf -1 oder so setzen

  • Das funktioniert nach dem gleichen Prinzip wie dein Parken Befehl:
    ocmd:autoentfernen(playerid, params[])
    {
    new vID = GetPlayerVehicleID(playerid);
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
    for (new i = 0; i < sizeof(AutoInfo); i++)
    {
    if(vID == AutoInfo[i] [Fahrzeugid])
    {
    if(!strcmp(AutoInfo[i][Besitzer], SpielerName(playerid)))
    {
    new query[128];
    format(query, sizeof(query), "DELETE FROM Autos WHERE id='%i'",AutoInfo[i][db_id]);
    mysql_function_query(dbhandle,query,false," "," ");
    DestroyVehicle(AutoInfo[i][Fahrzeugid]);
    AutoInfo[i][Fahrzeugid] = 0;
    SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto entfernt.");
    return 1;
    }
    break;
    }
    }
    return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
    }