DB updaten Teil 2 - es wird nur ein Wert geändert!

Ronja

Räubertochter
ID: 51429
L
4 Mai 2006
1.010
33
Hi,
nachdem Ihr mir schon bei meinen Checkboxen geholfen habt, folgende 2. Frage.

PHP:
$abfrage="UPDATE belegung SET belegt = 'no' ";
    print "$abfrage<br>\n";
        

	if (isset($_REQUEST['belegt']) && is_array($_REQUEST['belegt'])) { 
        reset($_REQUEST['belegt']); 
		foreach ($_REQUEST['belegt'] as $k => $v) {
		$abfrage1="UPDATE belegung SET belegt = 'checked' WHERE id ='$v'";  
  			print "$abfrage1<br>\n"; 
		} 
		}

Ausgabe:
UPDATE belegungs_kal SET belegt = 'no'
UPDATE belegungs_kal SET belegt = 'checked' WHERE id ='2007013'
UPDATE belegungs_kal SET belegt = 'checked' WHERE id ='2007014'
UPDATE belegungs_kal SET belegt = 'checked' WHERE id ='2007015'
UPDATE belegungs_kal SET belegt = 'checked' WHERE id ='2007016'
upgedatedupgedated

In die Datenbank wird aber nur die letzte ID (2007016) als belegt eingetragen.
Wieso? Was ist falsch an meinem Script?

Danke für Eure Hilfe
Ronja
 
Du führst $abfrage wahrscheinlich nur einmalig nach dem von Dir geposteten Scriptstück aus. Dadurch wird nur einmal ein Wert geändert. Du musst jede $abfrage ausführen.
 
Hi,

$abfrage ändert auf einen Rutsch alle belegt in "no".
Das klappt einwandfrei.

aber $abfrage1 ändert nur einen Eintrag.
Ich weiß aber nicht, wie ich es hinbekomme, dass er alle ändert.

Gruß Ronja
 
Folgendes müsste funktionieren:
PHP:
   $abfrage="UPDATE belegung SET belegt = 'no' ";
   //mysql_query($abfage);
   print "$abfrage<br />\n";   //das \n dürfte überflüssig sein

   if (isset($_POST['belegt']) && is_array($_POST['belegt']))
   {
      $abfrage1 = "UPDATE belegung SET belegt = 'checked' WHERE id IN (".@implode(', ', $_POST['belegt']).")";
      //mysql_query($abfrage1);
      print "$abfrage1<br />\n";   //das \n dürfte überflüssig sein

   }

*edit ach entschuldige war mein Fehler habs ausgebessert.

Btw. sendest du wo anders die Querys ab?
 
Zuletzt bearbeitet:
Hi, jetzt kommt als Ausgabe nur noch:

UPDATE belegungs_kal SET belegt = 'no'
UPDATE belegungs_kal SET belegt = 'checked' WHERE id IN ()
upgedatednicht upgedated

!?

Liest er jetzt gar nichts mehr aus?

Ronja