私はここで数十のスレッドを探していますが、解決策を見つけることはまだありません。HTMLフォームとPHPを使用してMySQLを更新してください
入力ボックスにデータベーステーブルの内容を表示するフォームを作成しました。入力ボックスの内容を変更して送信すると、データベースが更新されます。
<html>
<head>
</head>
<body>
<?php
$dbhost = '****';
$dbuser = '****';
$dbpass = '****';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('****');
$query = "SELECT * FROM anstalld";
$result = mysql_query($query) or die(mysql_error());
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<?php
while($row = mysql_fetch_array($result))
{
$namn = $row['namn'];
$mandag = $row['mandag'];
$tisdag = $row['tisdag'];
$onsdag = $row['onsdag'];
$torsdag = $row['torsdag'];
$fredag = $row['fredag'];
?>
<td width="100"></td>
<td><?=$namn?></td>
</tr>
<tr>
<td width="100">Mandag</td>
<td><input name="mandagid" type="text" value="<?=$mandag?>"></td>
</tr>
<tr>
<td width="100">Tisdag</td>
<td><input name="tisdagid" type="text" value="<?=$tisdag?>"></td>
</tr>
<tr>
<td width="100">Onsdag</td>
<td><input name="onsdagid" type="text" value="<?=$onsdag?>"></td>
</tr>
<tr>
<td width="100">Torsdag</td>
<td><input name="torsdagid" type="text" value="<?=$torsdag?>"></td>
</tr>
<tr>
<td width="100">Fredag</td>
<td><input name="fredagid" type="text" value="<?=$fredag?>"></td>
</tr>
<?php } ?>
<tr>
<td width="100"> </td>
<td> </td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="update" type="submit" id="update" value="Update">
</td>
</tr>
</table>
</form>
<?php
if(isset($_POST['update']))
{
$namn = $_POST['namnid'];
$mandag = $_POST['mandagid'];
$tisdag = $_POST['tisdagid'];
$onsdag = $_POST['onsdagid'];
$torsdag = $_POST['torsdagid'];
$fredag = $_POST['fredagid'];
$sql = mysql_query("UPDATE anstalld SET mandag = '$mandag', tisdag = '$tisdag', onsdag = '$onsdag', torsdag = '$torsdag', fredag = '$fredag' WHERE namn = '$namn'");
$retval = mysql_query($sql, $conn);
if(! $retval)
{
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
}
?>
</body>
</html>
フォームは、データベースの罰金の内容を示すが、更新時に、私はこのメッセージが表示されます。
あなたのSQL構文でエラーが発生しています。 が近く を使用する権利構文についてはMySQLサーバのバージョンに対応していること取扱説明書を確認し、「1」行1
で私はこの上で取得することができます任意の助けに感謝。
'mysql_ *'関数は**もはや**維持されていないと、新しいコードベースでは使用しないでください。より新しいAPIのために段階的に廃止されています。代わりに、[PDO](http://php.net/pdo)または[MySQLi]([php] http://php.net/mysqli)。 –
これは、入力フィールドに常に同じ名前を持つ複数のフォームを持つため、この方法では機能しません。また、少なくとも隠されたフィールドに 'namn'を置くために欠けています。そしてあなたはたくさんの閉鎖を逃した '}' – djot
@djotマルチフォームのことを指摘してくれてありがとう!静的な名前を使用せずにUPDATEクエリを入力ボックスに向けるにはどうすればよいでしょうか? – user2052849