我试图通过id删除SQL数据库中的一行。我在这里找到了与此相关的问题,但似乎没有任何效果,可能是因为我的页面是基于选择变量而填充(动态?)。行基于下拉列表(locationlab)显示在我的页面上,每行后面都有一个删除按钮。 It looks like this.
我在行的末尾暂时显示了Id,只需确保代码看到变量(& it does!)。
填充页面的代码如下所示:
<?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);
};
?>
当我点击删除按钮时,它似乎刷新页面但没有任何变化。我想如果我可以让删除按钮工作,更新将以类似的方式工作,但现在我很难过。
答案 0 :(得分:0)
<?php
if(isset($_POST['delete'])) {
$deletequery = ("DELETE FROM lab WHERE **columnName** ='$_POST[id]'");
mysql_query($deletequery, $conn);
}
?>
您在查询中缺少列名称。 DELETE语句中也没有*,因为删除意味着删除行。
答案 1 :(得分:0)
首先让我帮你格式化代码
你不应该在echo中写完整个HTML代码......
而不是尝试这个......
<?php
while($row = $result->fetch_assoc()) {
?>
<table>
<form action="testpage2.php" method="pos">
<td width="10%"><input type="text" name="make" value="<?= $row["make"] ?>"></td>
....
....
</table>
</form>
<?php
}
?>
你也应该使用mysqli而不是mysql
并且您的数据库查询也不正确,它必须是这样的..
DELETE FROM lab WHERE id ='$_POST[id]'
如果您使用mysqli,那么您也可以使用这样的函数..
mysqli_query($con,$deletequery)
if(mysqli_errno($con))
{
echo("SOme error while executing query : ".mysqli_error($con));
}