Textfelder gleichzeitig aktualisieren / Update MySQL

OK es geht ;) danke an alle ich poste mal die funktionierende lösung ohne synataxfehler:

PHP:
<form action="<? php_self?>" method="post" name="fo9rm1">
<? 
include("../verbindung.php");
   $sql = "SELECT * FROM xxx WHERE id=1";
   $todo = mysql_query($sql);
   while($daten = mysql_fetch_array($todo)) {
   $inhalt = $daten[test];
   $id = $daten[id];
   $id2 = $daten[id2];
   ?>
   
   <input name="wert[]" type="text" value="<? echo $inhalt;?>"><br>
   <input name="id2[]" type="hidden" value="<? echo $id2;?>"><br>
   <?
   
   
   }
?>
<input name="submit" type="submit" value="Senden">
</form>
<?

$submit = $_POST['submit'];
if($submit) {
include("../verbindung.php");
for ($i = 0; $i < count($_POST['wert']); $i++){
$wert = $_POST['wert'];
$id2 = $_POST['id2'];
# echo $wert[$i]."<br>";
$sql = "UPDATE xxx Set test = '".$wert[$i]."' WHERE id2 = '".$id2[$i]."' AND id = $id";
$todo = mysql_query($sql);
}


}

?>
 
Wenn du dir noch ein paar Zeilen Code sparen willst, kannst du folgendes machen:

PHP:
<form action="<? php_self?>" method="post" name="fo9rm1">
<?
   include("../verbindung.php");
   $sql = "SELECT * FROM xxx WHERE id=1";
   $todo = mysql_query($sql);
   while($daten = mysql_fetch_array($todo)) {
       $id = $daten[id];
   ?>
   
   <input name="wert[<?= $daten['id2'] ?>]" type="text" value="<?=$daten['test'];?>"><br>
   <?
   
   
   }
?>
<input name="submit" type="submit" value="Senden">
</form>
<?

if($_POST['submit']) {
    include("../verbindung.php");
    foreach ($_POST['wert'] as $id => $value){
        $sql = "UPDATE xxx Set test = '".$value."' WHERE id2 = '".$id."' AND id = $id";
        $todo = mysql_query($sql);
    }
}

?>

btw. noch ein zwei Tipps.
nie include verwenden. Besser include_once

warum $foo = $_POST['foo']; und eine Zeile später if($foo ==....) das kostet nur Speicher

nie $array[index], besser $array['index'] verwenden. Sonst such PHP jedesmal eine Konstante bevor es auf die Faulheit des Programmierers schliesst und das als String für den Index verwendet.
 
Zurück