我需要一些关于如何动态定位我想要删除的行的建议,因为目前我手动改变我的php脚本来删除行但是稍微停留在下一步的位置。
所以这是我的项目索引:
<?php
$result = mysqli_query($con,"SELECT * FROM items");
while($row = mysqli_fetch_array($result)) {
echo $row['added'] . $row['content'] . $row['id'];
echo "<br>";
echo "Mark as complete";
echo "<br>";
echo "<a href='delete.php'>Delete Item</a>";
echo "<br>";
echo "<a href='update.php'>Edit Item</a>";
echo "<br>";
echo "<br>";
}
mysqli_close($con);
?>
如果我点击删除项目,它只会在我的php中删除我指定的那个:
mysqli_query($con,"DELETE FROM items WHERE id='14'");
mysqli_close($con);
现在我需要知道如何告诉按钮删除链接所关联的项目,因为我可以手动输入14以便删除该项目。但是我需要一些关于如何删除数据库中该行的行或项ID的指令或建议。
我最初的想法是,我需要使用$ _GET传递有关此行的一些信息吗?
答案 0 :(得分:2)
您需要在delete.php
的网址中传递要删除的项目的ID。首先将ID添加到url:
echo '<a href="delete.php?id='. $row['id'] .'">Delete Item</a>';
然后,在delete.php
中,您需要使用$_GET
从URL获取参数,并将其插入删除查询中:
$id =$_GET['id'];
$result = mysqli_query("DELETE FROM items WHERE id='$id'");
但是,您需要知道任何人都可以进来,输入格式为'delete.php?id ='的网址,它会删除该项目。你应该:
答案 1 :(得分:1)
项目索引页面:
echo "<a href='delete.php?id=" . $row['id'] . "'>Delete Item</a>";
删除文件:
$id = $con->real_escape_string($_GET['id']); // preventing sql injections
$con->query("DELETE FROM items WHERE id='$id'");
答案 2 :(得分:0)
安全解决方案:
$id = $con->real_escape_string($_GET['id']);
$sth = $con->prepare("DELETE FROM items WHERE id=?");
$sth->bindParam(1, $id);
$sth->execute();