Werte der gesamten Tabelle aktualisieren

Avatar of Chris Coyier
Chris Coyier am

Dieser Code geht davon aus, dass Sie mit einer MySQL-Datenbank verbunden sind, die eine Tabelle mit Namen und E-Mails enthält. Die Idee ist, dass eine Tabelle mit jedem einzelnen Wert aus dieser Tabelle als Texteingaben ausgegeben wird. Sie können dann die Werte dieser Eingaben ändern und erneut senden, um alle Werte in der Datenbank zu aktualisieren.

//get data from db
$sql = mysql_query("SELECT * FROM table");
$count=mysql_num_rows($sql);

//start a table
echo '<form name="form1" method="post" action="">
<table width="292" border="0" cellspacing="1" cellpadding="0">';

//start header of table
echo '<tr>
<th>&nbsp;</th>
<th>Name</th>
<th>Email</th>
</tr>';

//loop through all results
while($r=mysql_fetch_object($sql)){

//print out table contents and add id into an array and email into an array
echo '<tr>
<td><input type="hidden" name="id[]" value='.$r->id.' readonly></td>
<td>'.$r->name.'</td>
<td><input name="email[]" type="text" id="price" value="'.$r->email.'"></td>
</tr>';
}

//submit button
echo'<tr>
<td colspan="3" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</form>';


// if form has been submitted, process it
if($_POST["Submit"])
{
       // get data from form
       $name = $_POST['name'];
       // loop through all array items
   foreach($_POST['id'] as $value)
       {
       // minus value by 1 since arrays start at 0
               $item = $value-1;
               //update table
       $sql1 = mysql_query("UPDATE table SET email='$email[$item]' WHERE id='$value'") or die(mysql_error());
   }

// redirect user
$_SESSION['success'] = 'Updated';
header("location:index.php");
}

Übermittelte Werte werden in diesem Beispiel nicht bereinigt, da davon ausgegangen wird, dass nur ein Administrator Zugriff auf diese Art von leistungsstarkem Eingabesystem hätte.