Einzelnen Beitrag anzeigen
  #1  
Alt 10.09.2013, 10:36:33
MKJ MKJ ist offline
Anfänger
 
Registriert seit: Sep 2013
Alter: 56
Beiträge: 2
HTML Input Felder als Array auslesen und Update

Hallo,

ich möchte jeweils eine Zeile (= ID) in einer Datenbank über Input Textfelder updaten. Jedes Inputfeld oder Textfeld enthält den Wert in der jeweiligen Spalte, also so:

ID | Spalte 1 = Input 1 | Spalte 2 = Input 2 etc.

Das ist auch kein Problem, wenn ich die Werte als einzelne Variablen auslese:

PHP-Code:
$Name $_POST['Name']; 
$sql"UPDATE Bilder SET Name = '$Name' WHERE id = '$ID'"
Die Inputs werden automatisch gefüllt mit:

PHP-Code:
if(isset($_POST['submit'])){ 
  
$id $_POST['id']; 
  
$abfrage "SELECT * FROM Bilder WHERE id ='$id'"
  
$ergebnis mysql_query($abfrage); 
  
$row mysql_fetch_object($ergebnis);      
}  

... 


echo  

'<form id="InsertData" action="insert-dataset.php" method="post"> 
  <input type="hidden" name="ID" id="ID" value="'
.$row->id.'" /> 
  <label><span>Name</span></label><br /> 
  <input type="text" name="Name" value="'
.$row->Name.'" /><br /> 
  <input type="submit" name="submit" value="Daten eintragen" class="sendbutton" /> 
</form>'

Das es sehr viele Inputs sind, möchte ich die Werte möglichst als Array ausgeben und updaten. Dazu müsste ich den input name als Array setzen:

PHP-Code:
<input type="text" name="Name[]" value="'.$row->Name.'"
Für das Update müsste eine for Schleife gehen. Aber ich stehe gerade auf dem Schlauch, wie die korrekte Syntax ist. Das hier geht jedenfalls nicht.

PHP-Code:
if(isset($_POST['Name'])) 


   foreach(
$_POST['bild']  as $key => $wert)  
         {  
         
$sql "Update Bilder SET $key = $wert WHERE id='$id'";  
         } 

$results mysql_query($sql
    OR die(
"Error: $sql <br>".mysql_error());    

Dann bekomme ich folgenden Fehler:

PHP-Code:
ErrorUpdate Bilder SET 2 WHERE id='45' 
Eigentlich sollte das Update sinngemäß aber so aussehen:
PHP-Code:
SET Bild_1 $_POST['bild[1]'
Über einen Tipp würde ich mich sehr freuen.

Danke im Voraus,

Mike
Mit Zitat antworten