在php&中删除数据库行MySQL的

时间:2014-07-11 12:53:35

标签: php mysqli

我需要一些关于如何动态定位我想要删除的行的建议,因为目前我手动改变我的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传递有关此行的一些信息吗?

3 个答案:

答案 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();