HI,
folgendes PHP-Problem:
Ich lasse mir über eine SQL-Abfrage (while-schleife )bestimmte Daten ausgeben, und füge dahinter eine Checkbox ein, die Ich über einen Zahlenwert aus der DB identifizieren kann.:
<input type="checkbox" name="' . $id .'" value="' . $id .'">
Nun mache ich hinter den Datensätzen, die ich löschen möchte, eine Häkchen rein, und klicke auf "entfernen".
Der Entfernen-Button funktioniert soweit, und er geht in die vorgesehene IF-Frage rein:
if(isset($_GET['del1'])){
****************
}
Die URL ändert sich auch entsprechend der gewählten Checkboxen: index.php?del1=entfernen&27=27&30=30&28=28
Jedoch habe ich das Problem, dass ich diese Variablen nicht übergeben bekomme.
Wenn ich mir in der IF-Schleife die Werte ausgeben lasse, dann sieht das so aus:
print "der Wert 30 = ".$_GET['30']."<br>";
Es wird mir der Wert der Checkbox mit dem Namen "30" mit einer "30" ausgegeben.
Wie bekomme ich nun eine $_GET-Abfrage hin, in der ich mehrere Checkboxen abfragen kann?
mysql_query("DELETE FROM $tabelle WHERE id = $_GET[******]");
Wenn ich nun oben der Checkbox einen festen Namen gebe, dann kann mir immer nur das letzte Value ausgegeben werden.
So, gerade wo anders die für mich passende Lösung bekommen :)
Die Checkbox musste geändert werden:
<input type="checkbox" name="delete[]" value="' . $id .'">
und der Löschbefehl schaut so aus:
mysql_query('DELETE FROM ' . $tabelle . ' WHERE id IN (' . implode(',', $_GET['delete']) . ')');
Allerdings gab es dabei den Hinweis, dass der so klar geschrieben ein Sicherheitsrisiko darstellt, also in keiner Datei verwenden, die öffentlich zugänglich ist...