我正在尝试通过 ID 删除 SQL 数据库中的一行。我在这里发现了与此相关的问题,但似乎没有任何效果,也许是因为我的页面是根据选择变量填充的(动态?)。这些行根据下拉列表(locationlab)显示在我的页面上,并且每行后面都有一个删除按钮。 It looks like this.
我将 ID 临时显示在行的末尾,只需确保代码能够看到该变量(确实如此!)。
填充页面的代码如下所示:
<?php
$locationlab = $_POST[locationlab];
$sql = "SELECT * FROM lab WHERE locationlab LIKE '{$locationlab}'";
echo($locationlab);
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo'
<table>
<form action=testpage2.php method=post>
<td width="10%"><input type=text name=make value='. $row["make"].'></td>
<td width="10%"><input type=text name=model value='. $row["model"].'></td>
<td width="20%"><input type=text name=hostname value='. $row["hostname"].'></td>
<td width="15%"><input type=text name=ipaddress value='. $row["ipaddress"].'></td>
<td width="20%"><input type=text name=ipmiipaddress value='. $row["ipmiipaddress"].'></td>
<td width="15%"><input type=text name=terminalserveraddress value='. $row["terminalserveraddress"].'></td>
<td width="10%"><input type=text name=locationlab value='. $row["locationlab"].'></td>
<td><input type=submit name=update value=update></td>
<td><input type=submit name=delete value=delete></td>
<td id=id name=id value='. $row["id"].'>'. $row["id"].'</td>
</table>
</form>';
}}
?>
我可以在 phpMyAdmin 页面中手动输入下面的 SQL 查询,这样我就知道它是正确的。 删除按钮的代码如下所示:
<?php
if(isset($_POST['delete'])) {
$deletequery = ("DELETE * FROM lab WHERE ='$_POST[id]'");
mysql_query($deletequery, $conn);
};
?>
当我单击删除按钮时,它似乎刷新了页面,但没有任何变化。我想如果我能让删除按钮工作,更新将以类似的方式工作,但现在我被难住了。
最佳答案
<?php
if(isset($_POST['delete'])) {
$deletequery = ("DELETE FROM lab WHERE **columnName** ='$_POST[id]'");
mysql_query($deletequery, $conn);
}
?>
查询中缺少列名称。另外,DELETE语句中没有*,因为删除意味着删除行。
关于php - SQL 按 id 删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36967899/