Löschen von Datein in der Datenbank
Hey,
sorry wenn euch die Überschrift etwas verwirrt mir ist aber leider nichts besseres eingefallen.
Also, ich habe folgendes Problem/Frage:
Ich mache zum löschen von Daten in der DB immer checkboxen mit der jeweiligen id als value...ja aber denn ist es so, das wenn ich 2 chechboxen ankreuze, er nur eine Zeile löscht.
Wie muss man es machen das wenn ich 2 (oder mehr) löschen will?
sorry wenn euch die Überschrift etwas verwirrt mir ist aber leider nichts besseres eingefallen.
Also, ich habe folgendes Problem/Frage:
Ich mache zum löschen von Daten in der DB immer checkboxen mit der jeweiligen id als value...ja aber denn ist es so, das wenn ich 2 chechboxen ankreuze, er nur eine Zeile löscht.
Wie muss man es machen das wenn ich 2 (oder mehr) löschen will?
ok. Weiß jetzt nicht, wie du die Parameter bekommst, aber und wo du das programmierst, aber ich geh mal von PHP aus...
Dann hast du bestimmt ein array z.B. erase_data, wo dann die Indexe der zu löschenden Dateien drin steht.
Dann schaust du wieviele Felder das sind --> z.B. 3
und dann machst ne for schleife alla
oder hab ich dich falsch verstanden?
Erzähl doch mal, wie du es gecodet hast, bzw wo die Indexe drin stehen...
Dann hast du bestimmt ein array z.B. erase_data, wo dann die Indexe der zu löschenden Dateien drin steht.
Dann schaust du wieviele Felder das sind --> z.B. 3
und dann machst ne for schleife alla
|
|
PHP-Quelltext |
1 2 |
for (i=0; anzahl_felder<i; i++)
mysql_query("delete from tablename where id = ".erase_data[i]);
|
oder hab ich dich falsch verstanden?
Erzähl doch mal, wie du es gecodet hast, bzw wo die Indexe drin stehen...
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »dienstdrk« (9. August 2010, 21:24)
|
|
MySQL-Abfrage(n) |
1 |
DELETE FROM `tabelle` WHERE `feld` IN ('Wert1', 'Wert2', ...) |
Das sollte auch gehen. Wenn du deine Ids in einem Array hast, müsstest du diese noch in die Kommaschreibweise überführen, das geht mit implode: http://de.php.net/implode
|
|
PHP-Quelltext |
1 2 |
$str = implode(",", $array);
mysql_query("DELETE FROM `tabelle` WHERE `feld` IN (".$str.")");
|
~!__/
..o.o
This is Einkaufswagen.
Copy Einkaufswagen into your signature to help him on his way to world domination.
viatoris
unregistriert
So wie du das erzählst, dürfest du allen Checkboxen den selben Namen gegeben haben. Daher "überschreibt" jede angehakte Checkbox die vorherige. Relativ einfache Lösung dafür:
Statt
dieses hier:
Also die beiden eckigen Klammern am Ende vom Namen.
Damit bekommst du (wenn zumindest eine Checkbox angehakt ist) ein Array an IDs, über die du dann mit einer Schleife iterieren kannst. Löschen dann am Besten so, wie es Skittles beschrieben hat mit
. Aber pass auf, wenn keine angehakt ist, dann wird nämlich gar nichts mitgeliefert, also $_POST['id_to_delete'] ist nicht gesetzt.
Statt
|
|
HTML |
1 |
<input type="checkbox" name="id_to_delte" /> |
dieses hier:
|
|
HTML |
1 |
<input type="checkbox" name="id_to_delte[]" /> |
Also die beiden eckigen Klammern am Ende vom Namen.
Damit bekommst du (wenn zumindest eine Checkbox angehakt ist) ein Array an IDs, über die du dann mit einer Schleife iterieren kannst. Löschen dann am Besten so, wie es Skittles beschrieben hat mit
|
|
MySQL-Abfrage(n) |
1 |
WHERE `feld` IN ('ID1', 'ID2', ...) |
Ähnliche Themen
-
PHP »-
mehrere datein mit einmal löschen
(5. Februar 2006, 18:15)
-
PHP »-
Datei löschen..
(28. März 2003, 13:48)
-
Allgemeines Forum »-
passwortschutz
(7. März 2003, 13:13)
-
Archiv: Software »-
WSFTP oder LEECHFTP?
(24. November 2002, 16:24)



