Datenbank ID fängt immer wieder von vorn an zu Zählen

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
  • Moin ich bin es mal wieder^^


    Undzwar fängt der immer an von 1 zu zählen mit der Datenbank ID in MySQL.


    CMD:copcarerstellen(playerid, params[])
    {
    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return SendClientMessage(playerid, 0xFF0000FF, "Es können keine weiteren Fahrzeuge erstellt werden, Limit (MAX_VEHICLES) erreicht.");
    new tmp[20], idx, model, color1 = -1, color2 = -1;
    tmp = strtok(params, idx);
    if(!strlen(tmp) || !IsNumeric(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "Verwendung: /copcarerstellen [Model] [opt:Farbe1] [opt:Farbe2]");
    model = strval(tmp);
    if(model < 400 || model > 611) return SendClientMessage(playerid, 0xFF0000FF, "Error: Model ID existiert nicht.");
    tmp = strtok(params, idx);
    if(!strlen(tmp) || !IsNumeric(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "Verwendung: /copcarerstellen [Model] [opt:Farbe1] [opt:Farbe2]");
    tmp = strtok(params, idx);
    if(strlen(tmp) && IsNumeric(tmp)) color1 = strval(tmp);
    tmp = strtok(params, idx);
    if(strlen(tmp) && IsNumeric(tmp)) color2 = strval(tmp);
    for(new i=0; i<MAX_cop_VEHICLES; i++)
    {
    if(copVehicle[i][e_vID] == 0)
    {
    new Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    copVehicle[i][e_modelID] = model;
    copVehicle[i][e_x] = x;
    copVehicle[i][e_y] = y;
    copVehicle[i][e_z] = z;
    copVehicle[i][e_a] = a;
    copVehicle[i][e_color1] = color1;
    copVehicle[i][e_color2] = color2;
    new query[256];
    format(query, sizeof(query), "INSERT INTO copVehicles (ID, ModelID, PosX, PosY, PosZ, PosA, Color1, Color2) VALUES ('%d', '%d', '%f', '%f', '%f', '%f', '%d', '%d')",
    i, copVehicle[i][e_modelID], copVehicle[i][e_x], copVehicle[i][e_y], copVehicle[i][e_z], copVehicle[i][e_a], copVehicle[i][e_color1], copVehicle[i][e_color2]);
    mysql_tquery(handle, query);
    copVehicle[i][e_vID] = CreateVehicle(copVehicle[i][e_modelID], copVehicle[i][e_x], copVehicle[i][e_y], copVehicle[i][e_z], copVehicle[i][e_a], copVehicle[i][e_color1], copVehicle[i][e_color2],-1);
    PutPlayerInVehicle(playerid, copVehicle[i][e_vID], 0);
    return SendClientMessage(playerid, 0x00FF00FF, "Fahrzeug gespeichert.");
    }
    }
    return SendClientMessage(playerid, 0xFF0000FF, "Error: Limit für Fraktions-Fahrzeuge erreicht.");
    } Commands basieren auf dem Tutorial von @Jeffry


    Beispiel:


    Ich erstelle 15 Cop Autos.
    Danach starte ich den Server neu.
    Mir fällt auf ich brauch noch Autos.
    Ich gebe nochmal /copcarerstellen ein.
    aber er fängt wieder von vorn an mit der vID bzw die Datenbank ID

  • Normalerweise nutzt man dafür auch die AUTO_INCREMENT Funktion in SQL. Du musst auch normalerweise bei der INSERT Query keine ID angeben.

    Hab ich gerade eingestellt nur jetzt habe ich das Problem das er die ID 1 nicht mehr überschreibt sondern einfach so lässt.


    Beispiel:


    Ich erstelle ein Auto mit /copcarerstellen
    Wird in Datenbank mit ID 1 erstellen
    Ich Starte den Server neu
    erstelle ein Auto mit /copcarerstellen
    Nichts wird eingetragen in der DB
    erstelle noch ein Auto mit /copcarerstellen
    es wird bei ID 2 eingetragen