我已经编写了几页以从数据库中删除记录,但它似乎不起作用。
我有一个网站,用户使用存储在数据库中的正确名称和密码登录,这工作正常。
然后将用户带到管理页面,代码由以下一些内容组成:
<?php
$sql = mysqli_query($con, "SELECT * FROM details INNER JOIN genre ON genre.genreID = details.genreID;") or die(mysqli_error($sql));
while($row = mysqli_fetch_array($sql)) {
echo '<div class="info-box">
<img class="image" src='.'"'.$row['image'].'"
'.'>
<a class="edit" href="delete.php?id=' . $row["ID"] .'" onclick="return confirm(''Are you sure you want to delete this record?'')">Delete</a> |
</div>';
}
mysqli_close($con);
?>
我已经在管理页面上创建了一个带有完整代码的 JS 小提琴......http://jsfiddle.net/n3n4ot4g/
此页面转到删除.php在后台删除记录。 此页面包含以下代码:
<?php
$myID = $_GET['ID'];
echo $myID;
include ('includes/dbconx.php');
//check if a value has been sent
if(isset($myID)){
//MySQL statement to delete record using the unique id variable
mysqli_query($con, "DELETE FROM details WHERE ID = '$myID'") or die ('Error: '.mysqli_error());
}
mysqli_close($con);
header("Location: admin.php");
?>
当我单击删除链接时,会出现弹出框以确认删除,我单击"是",但随后它将我带到管理员.php其中没有任何内容。 所有记录都将消失。 当我单击左侧面板导航上的"查看记录"时,也会发生这种情况。 我可以返回并再次登录并查看记录,但我尝试删除的记录不会被删除。
我不确定这是HTML还是PHP问题。
我知道JS小提琴不是为PHP设计的,但我找不到替代方案。
更改: mysqli_query($con, "DELETE FROM details WHERE ID = '$myID'") or die ('Error: '.mysqli_error());
自:
mysqli_query($con, "DELETE FROM details WHERE ID = " . $myID) or die ('Error: '.mysqli_error());
通过将$myID
放在单引号中,您说它应该按原样获取,因此您的查询正在搜索字面上为"$myID"的 ID,当然它不会找到。
或者,您可以删除单引号而不连接$myID
变量,确保查询本身仍用双引号括起来。这意味着变量将被正确处理,并且将使用它的值。
mysqli_query($con, "DELETE FROM details WHERE ID = $myID") or die ('Error: '.mysqli_error());