我正在尝试制作一个 HTML 表作为 mySQL 数据库的前端。该表显示良好,我可以输入我想要对表的每一行进行的编辑,但当我按下提交按钮时,实际上并没有进行更改。谁能看出我哪里出错了?
<?php
include("db.php");
$sql = "SELECT * FROM `artist`";
$result = mysqli_query($conn, $sql);
if (isset($_POST['update'])){
$artID = $_POST['artID'];
$artName = $_POST['artName'];
$key = $_POST['hidden'];
$UpdateQuery = "UPDATE `artist` SET `artID` = '$artID', `artName` = '$artName' WHERE `artist`.`artID` = '$key'";
mysqli_query($conn,$UpdateQuery);
header("Location: {$_SERVER['HTTP_REFERER']}");
exit;
};
echo "<table border='1'>";
echo "<tr>";
echo "<th>ID</th>";
echo "<th>Name</th>";
echo "</tr>";
if ($result->num_rows > 0) {
echo "<form id ='artisttable' action ='getartiststable.php' method ='post'>";
// output data of each row
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" ."<input type='text' name ='artID' value ='" . $row['artID'] . "' </td>";
echo "<td>" . "<input type='text' name ='artName' value ='" . $row["artName"] . "' </td>";
echo "<td>" . "<input type = 'hidden' name ='hidden' value='" . $row['artID'] . "' </td>";
echo "<td>" . "<input type='submit' name ='update'" . " </td>";
echo "</tr>";
}
echo "</form>";
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
db.php
文件仅包含 mySQL 数据库的连接信息,我 100% 确定它没有任何问题,因为它正确检索表,只是不更新。
最佳答案
您将表单标签放入 tr 中,这是不允许的,仅允许 td 所以你必须从那里删除该 tr。
您必须使用jquery,或者您可以用其他网格结构替换表格,以便它看起来相同并且表单也可以放置在那里
还有一个建议,不要将 php 和 html 混合在一起,为了干净的代码而将它们分开
如果你做了所有这些,你的代码将是这样的
关于php - 尝试使用 PHP 和 mySQL 创建可编辑的 HTML 表,但该表不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36898232/