pragmaMx Support Forum

alles für Webmaster => PhP & mySQL => Thema gestartet von: reddragon am 09 Februar 2010, 21:10:03

Titel: [Solved] mehrere Checkboxen übergeben
Beitrag von: reddragon am 09 Februar 2010, 21:10:03
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.
Titel: Re: mehrere Checkboxen übergeben
Beitrag von: reddragon am 14 Februar 2010, 17:58:40
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...