複数のフォーム フィールド (テキスト フィールドとテキスト エリア) から mysql テーブルの 1 行 (= ID) を更新しようとしています。テーブルは次のようになります。
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.'" />
1 つの列のすべてのセルを更新する実際の例を見つけました。しかし、1 つの 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)
?>
更新クエリには、対応する入力フィールド (入力名 = 列名) を持つ列のみが含まれます。何百もの入力フィールドがあるので、同じコードを使用して更新クエリを複数のページに広げることができます。
ご協力ありがとうございました。