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

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

    Moin ich bin es mal wieder^^

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

    PAWN-Quellcode

    1. CMD:copcarerstellen(playerid, params[])
    2. {
    3. if(GetVehicleModel(MAX_VEHICLES-1) != 0) return SendClientMessage(playerid, 0xFF0000FF, "Es können keine weiteren Fahrzeuge erstellt werden, Limit (MAX_VEHICLES) erreicht.");
    4. new tmp[20], idx, model, color1 = -1, color2 = -1;
    5. tmp = strtok(params, idx);
    6. if(!strlen(tmp) || !IsNumeric(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "Verwendung: /copcarerstellen [Model] [opt:Farbe1] [opt:Farbe2]");
    7. model = strval(tmp);
    8. if(model < 400 || model > 611) return SendClientMessage(playerid, 0xFF0000FF, "Error: Model ID existiert nicht.");
    9. tmp = strtok(params, idx);
    10. if(!strlen(tmp) || !IsNumeric(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "Verwendung: /copcarerstellen [Model] [opt:Farbe1] [opt:Farbe2]");
    11. tmp = strtok(params, idx);
    12. if(strlen(tmp) && IsNumeric(tmp)) color1 = strval(tmp);
    13. tmp = strtok(params, idx);
    14. if(strlen(tmp) && IsNumeric(tmp)) color2 = strval(tmp);
    15. for(new i=0; i<MAX_cop_VEHICLES; i++)
    16. {
    17. if(copVehicle[i][e_vID] == 0)
    18. {
    19. new Float:x, Float:y, Float:z, Float:a;
    20. GetPlayerPos(playerid, x, y, z);
    21. GetPlayerFacingAngle(playerid, a);
    22. copVehicle[i][e_modelID] = model;
    23. copVehicle[i][e_x] = x;
    24. copVehicle[i][e_y] = y;
    25. copVehicle[i][e_z] = z;
    26. copVehicle[i][e_a] = a;
    27. copVehicle[i][e_color1] = color1;
    28. copVehicle[i][e_color2] = color2;
    29. new query[256];
    30. format(query, sizeof(query), "INSERT INTO copVehicles (ID, ModelID, PosX, PosY, PosZ, PosA, Color1, Color2) VALUES ('%d', '%d', '%f', '%f', '%f', '%f', '%d', '%d')",
    31. 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]);
    32. mysql_tquery(handle, query);
    33. 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);
    34. PutPlayerInVehicle(playerid, copVehicle[i][e_vID], 0);
    35. return SendClientMessage(playerid, 0x00FF00FF, "Fahrzeug gespeichert.");
    36. }
    37. }
    38. return SendClientMessage(playerid, 0xFF0000FF, "Error: Limit für Fraktions-Fahrzeuge erreicht.");
    39. }
    Alles anzeigen
    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
  • Canna schrieb:

    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