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:
Error: Update 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