Hello,
$where = array();
foreach($POST['ger'] as $key => $val)
$where .= "ger".intval($key)." = 1"; ## hab ich noch nicht ausprobiert, aber hier
## würde ich selbst von PHP einen Fehler erwarten
$where[] = "ger".intval($key)." = 1"; ## halte ich für besser
$sql = "select $fieldlist from $table where " . implode(' and ', $where);
Und wenn das Array leer war, weil gar kein Schalter gesetzt war, steht dann da:
$sql = "select $fieldlist from $table where ";
Das gibt dann einen fehler vom DBMS ;-)
Vor allem dann, wenn bei nicht numerischem $key das intval() eine 0 zurückliefert. Falls es eine Spalte ger0 gibt, ist das ein besonders hinterlistiger Fehler, der im Stillen arbeitet und "nur" zu einem falschen Abfrageergebnis führt.
eine der Grundregeln beim Datenbank-Programmieren ist, dass 0 beim Indizieren einen nicht gültigen Wert symbolisiert ;-) Jetzt frag bloß nicht, wo das steht. Das habe ich mir doch gerade erst ausgedacht...
Du hast Recht, darauf hätte ich ihn hinweisen müssen.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
