我正在尝试从多个表单字段(文本字段和文本区域)更新 mysql 表的一行(= ID)。该表如下所示:
身份证 | 第 1 栏 | 第 2 栏 | 第 3 列 ... | 第 50 列
一切正常,如果我使用这样的 $_Post[] 变量
$Name = $_POST['Name'];
$Name2 = $_POST['Name2'];
$sql= "UPDATE Bilder SET Name = '$Name', Name2 = '$Name2' WHERE id = '$ID'";
<form id="InsertData" action="insert-dataset.php" method="post">
<input type="hidden" name="ID" id="ID" value="'.$row->id.'" />
<input type="text" name="Name" value="'.$row->Name.'" /><br />
<input type="text" name="Name2" value="'.$row->Name.'" /><br />
<input type="submit" name="submit" value="Daten eintragen" class="sendbutton" />
</form>
由于我有数百个字段,我宁愿使用这样的数组:
<input type="text" name="Name[]" value="'.$row->Name.'" />
我找到了更新一列所有单元格的工作示例。但我必须更新一个 ID 的所有列。
任何帮助,将不胜感激。提前致谢!
这是最终结果:
$col_result = mysql_query("SHOW COLUMNS FROM Bilder");
$row_result = mysql_query(sprintf("SELECT * FROM Bilder WHERE id = %s", $ID));
if(!$col_result) {
echo 'Konnte Anfrage nicht ausführen: ' . mysql_error();
exit;
}
if ( !empty($_POST) ) {
$aDataSet = array();
while( list( $field, $value ) = each( $_POST )) {
$aDataSet[] = $field . "='" . $value . "'";
}
$update_sql = "UPDATE Bilder SET " . implode( ',', $aDataSet );
$update_sql .= sprintf("WHERE id = '$ID'");
$result = mysql_query($update_sql, $connection);
if(!$result)
{
die('');
}
echo '';
}
mysql_close($connection)
?>
更新查询将仅包括具有相应输入字段的列(输入名称 = 列名称)。由于我有数百个输入字段,因此我可以使用更新查询的相同代码将它们分布在多个页面上。
谢谢大家的帮助。