Datenbank wird nicht gelöscht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Datenbank wird nicht gelöscht

    Moin ^^

    Ich hab hier ein Problem mit diesem Befehle ich erkläre es euch dann wieder an einem Beispiel^^

    PAWN-Quellcode

    1. CMD:copcarloeschen(playerid, params[])
    2. {
    3. new vid;
    4. if(!IsNumeric(params) || !strlen(params)) return SendClientMessage(playerid, 0xFF0000FF, "Error: Nutze: /copcardelete [Vehicle ID]");
    5. vid = strval(params);
    6. handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);
    7. if(vid <= 0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    8. for(new i=0; i<MAX_cop_VEHICLES; i++)
    9. {
    10. if(copVehicle[i][e_vID] == vid)
    11. {
    12. copVehicle[i][e_modelID] = 0;
    13. copVehicle[i][e_x] = 0.0;
    14. copVehicle[i][e_y] = 0.0;
    15. copVehicle[i][e_z] = 0.0;
    16. copVehicle[i][e_a] = 0.0;
    17. copVehicle[i][e_color1] = 0;
    18. copVehicle[i][e_color2] = 0;
    19. new query[128];
    20. format(query, sizeof(query), "DELETE FROM copVehicles WHERE ID = '%d'", i);
    21. mysql_tquery(handle, query);
    22. DestroyVehicle(copVehicle[i][e_vID]);
    23. copVehicle[i][e_vID] = 0;
    24. return SendClientMessage(playerid, 0x00FF00FF, "Fahrzeug gelöscht.");
    25. }
    26. }
    27. return SendClientMessage(playerid, 0xFF0000FF, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    28. }
    Alles anzeigen


    Beispiel:

    Ich will ein Auto löschen gebe den befehl ein
    Auto wird gelöscht aber nur ingame
    Datenbank bleibt weiterhin bestehen im MySQL log keine error

    ich will das er die ganze zeile löscht
  • palwal schrieb:

    theralio10 schrieb:

    copVehicle[e_vID]
    Hat die Variable den gleichen Wert/Inhalt wie i?
    am besten ich schreibe den Command neu denn sonst komm ich durcheinander kann mir da jemand helfen wie Fang ich an? Und ich lerne besser^^
    Ist es möglich das man durch die Car ID die Datenbank ID herausfindet und das man praktisch nur /copcarloeschen [carid] machen muss und dann verschwindet er ingame und in der Datenbank
  • palwal schrieb:

    Mit "herausfinden" ist nichts. Beim Laden von einem Vehicle musst du die id des Datenbankeintrags vom Fahrzeug schön brav mit laden^^ Dann funktioniert das, sonst auf keinen Fall.

    Sende mal die Load Function wo du diese Fahrzeuge lädst.

    PAWN-Quellcode

    1. public LoadcopVehicles_Data()
    2. {
    3. new rows, id, createdVehs;
    4. rows = cache_num_rows();
    5. for(new i=0; i<rows; i++)
    6. {
    7. cache_get_value_int(i, "ID",copVehicle[id][e_vID]);
    8. if(id < 0 || id >= MAX_cop_VEHICLES) continue;
    9. cache_get_value_int(i, "ModelID",copVehicle[id][e_modelID]);
    10. cache_get_value_float(i, "PosX",copVehicle[id][e_x]);
    11. cache_get_value_float(i, "PosY",copVehicle[id][e_y]);
    12. cache_get_value_float(i, "PosZ",copVehicle[id][e_z]);
    13. cache_get_value_float(i, "PosA",copVehicle[id][e_a]);
    14. cache_get_value_int(i, "Color1",copVehicle[id][e_color1]);
    15. cache_get_value_int(i, "Color2",copVehicle[id][e_color2]);
    16. if(copVehicle[id][e_modelID] >= 400 && copVehicle[id][e_modelID] <= 611)
    17. {
    18. copVehicle[id][e_vID] = CreateVehicle(copVehicle[id][e_modelID], copVehicle[id][e_x], copVehicle[id][e_y], copVehicle[id][e_z], copVehicle[id][e_a], copVehicle[id][e_color1], copVehicle[id][e_color2], -1);
    19. }
    20. else
    21. {
    22. printf("[Error] Model-ID %d existiert nicht (ID: %d).", copVehicle[id][e_modelID], id);
    23. }
    24. if(GetVehicleModel(MAX_VEHICLES-1) != 0) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_VEHICLES) erreicht.");
    25. createdVehs++;
    26. if(createdVehs == MAX_cop_VEHICLES) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_cop_VEHICLES) erreicht.");
    27. }
    28. return 1;
    29. }
    Alles anzeigen
  • e_vID weist du zwar anfangs der DatenbankID zu, aber überschreibst sie dann wieder mit der vehicleID vom server.

    Ansatz wäre du erweiterst dein ENUM um eine variable und speicherst darin die DatenbankID. Dann brauchst du nur deine Query wieder anpassen und es sollte funktionieren.

    [PHP] Dynamischer TS³ Banner (Script) | [PHP][WSC] Teamspeak³ Viewer/Server Plugin Paket
    KEIN Support per Skype oder Private Nachricht!

  • Canna schrieb:

    e_vID weist du zwar anfangs der DatenbankID zu, aber überschreibst sie dann wieder mit der vehicleID vom server.

    Ansatz wäre du erweiterst dein ENUM um eine variable und speicherst darin die DatenbankID. Dann brauchst du nur deine Query wieder anpassen und es sollte funktionieren.
    Also ich hab jetzt eine variable im ENUM hinzugefügt "e_DatabaseID" und jetzt soll ich die in der Query einfach einfügen und was damit machen?
  • Es ist eine Qual am Handy zu zitieren..

    Du ersetzt bei deiner lade Funktion die Zeile
    cache_get_value_int(i, "ID",copVehicle[id][e_vID]);
    zu
    cache_get_value_int(i, "ID",copVehicle[id][e_DatabaseID]);
    Deine Query sähe so aus
    format(query, sizeof(query), "DELETE FROM copVehicles WHERE ID = '%i'",copVehicl][e_DatabaseID]);

    Wenn du jetzt überlegst, müsstest du wissen wo der Fehler war. :)

    [PHP] Dynamischer TS³ Banner (Script) | [PHP][WSC] Teamspeak³ Viewer/Server Plugin Paket
    KEIN Support per Skype oder Private Nachricht!
  • Dann Debug das Script.
    mach bitte unter :

    theralio10 schrieb:

    format(query, sizeof(query), "DELETE FROM copVehicles WHERE ID = '%d'", i);
    das rein:
    printf("%s", query);

    Dann löschst du Ingame das Fahrzeug. Der SQL-Befehl wird in der Server-Log gespeichert.
    Den SQL-Befehl kopierst du und führst ihn direkt in deine Datenbank (phpMyAdmin) aus....erstens siehst du ob eine gültige ID in dem SQL Befehl ist zum Löschen eines Fahrzeuges oder du hast ein Fehler in der Datenbank...das ist einfacher für dich.
  • Gerade nochmal deine LoadcopVehicles_Data() angesehen.

    du hast die Variable id die immer den Wert 0 hat,

    erstelle bitte eine neue Function:

    PAWN-Quellcode

    1. getFreeCarID() {
    2. for(new i=0; i < MAX_VEHICLES; i++) {
    3. if(copVehicle[i][e_vID] == 0) return i;
    4. }
    5. return -255;
    6. }
    und in deine Load Function machst du bitte IN DER FOR - SCHLEIFE:
    id = getFreeCarID();

    Ich denke das sollte dein Fehler beheben
  • palwal schrieb:

    Gerade nochmal deine LoadcopVehicles_Data() angesehen.

    du hast die Variable id die immer den Wert 0 hat,

    erstelle bitte eine neue Function:

    PAWN-Quellcode

    1. getFreeCarID() {
    2. for(new i=0; i < MAX_VEHICLES; i++) {
    3. if(copVehicle[i][e_vID] == 0) return i;
    4. }
    5. return -255;
    6. }
    und in deine Load Function machst du bitte IN DER FOR - SCHLEIFE:
    id = getFreeCarID();

    Ich denke das sollte dein Fehler beheben
    Also bei mir geht alles wunderbar nur jetzt noch die letzte finale frage dann ist alles perfekt

    wie gleiche ich die MySQL ID mit der ingame id ab? pic-upload.pw/img/0cd
  • palwal schrieb:

    theralio10 schrieb:

    copVehicle[id][e_vID] = CreateVehicle(copVehicle[id][e_modelID], copVehicle[id][e_x], copVehicle[id][e_y], copVehicle[id][e_z], copVehicle[id][e_a], copVehicle[id][e_color1], copVehicle[id][e_color2], -1);
    Neuen Enum erstellen und statt e_vID bei CreateVehicle zu verwenden, verwendest du eine neue......
    Sonst überschreibst du die DatenbankID mit der VehicleID :P
    Schade wollte mir gerade mal angucken wie ein /carsell command funktioniert aber der funktioniert ja mit dem Spielernamen das ist hier ja schlecht möglich