Tôi đã xem qua hàng tá chủ đề ở đây về điều này nhưng vẫn chưa tìm được giải pháp.Cập nhật MySQL bằng cách sử dụng Biểu mẫu HTML và PHP
Tôi đã tạo biểu mẫu được cho là hiển thị nội dung của bảng cơ sở dữ liệu trong hộp nhập và khi nội dung của hộp nhập được thay đổi và gửi cơ sở dữ liệu phải cập nhật.
<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>
Các hình thức hiển thị nội dung của cơ sở dữ liệu tốt, nhưng khi cập nhật tôi nhận được tin nhắn này:
Bạn có một lỗi trong cú pháp SQL của bạn; kiểm tra hướng dẫn rằng tương ứng với phiên bản máy chủ MySQL của bạn cho đúng cú pháp để sử dụng gần '1' tại dòng 1
Tôi đánh giá cao sự giúp đỡ nào tôi có thể nhận về vấn đề này.
Lệnh 'mysql_ *' chức năng này ** không còn duy trì ** và không nên được sử dụng trong bất kỳ codebase mới. Nó đang được loại bỏ theo hướng ưu tiên các API mới hơn. Thay vào đó, bạn nên sử dụng [** statement statements **] (https://www.youtube.com/watch?v=nLinqtCfhKY) với [PDO] (http://php.net/pdo) hoặc [MySQLi] (http://php.net/mysqli). –
Điều này không thể hoạt động theo cách này bởi vì bạn có nhiều biểu mẫu với cùng một 'tên' cho các trường nhập. Ngoài ra bạn đang thiếu để đặt 'namn' trong một trường ít nhất là ẩn. Và bạn đã bỏ lỡ rất nhiều việc đóng '}' – djot
@djot Cảm ơn bạn đã chỉ ra điều đa dạng! Làm thế nào tôi sẽ đi về chỉ truy vấn UPDATE vào hộp đầu vào mà không sử dụng tên tĩnh? – user2052849