我在回显线中使用删除按钮从表格中选择记录。我希望能够在单击相应的“删除”按钮时删除记录。 这是我从其他查询中删除所选记录的删除查询,但它无法正常工作!
$querytwo = 'DELETE FROM paginas WHERE id= $_POST["id"]';
我做错了什么。它是什么?这是完整的代码。
<?php
include_once("config.php"); //this is the database connection
$query = "SELECT * FROM paginas "; //selects from the table called paginas
$result = mysqli_query($mysqli, $query);
while($row = mysqli_fetch_assoc($result))
{
$pagetitle = $row['pagetitle'];
$toevoeging = $row['toevoeging'];
$message = $row['message'];
echo '<article class="topcontent">
<div class="mct">
<h2>' . $pagetitle .'</h2>
</div><br>
<p class="post-info">'. $toevoeging . '</p>
<p class="post-text"><br>'.$message.'</p>
</article>
<div class="deleteknop">
<form method="post">';
echo '<input type="hidden" name="id" value="'.$row['id'].'">
<input name="delete" type="submit" value="Delete Now!">
</form>
</div>' ;
}
$querytwo = 'DELETE FROM paginas WHERE id= $_POST["id"]';
if (isset($_POST['delete'])) //Deletes the query if 'delete' button is clicked
{
$resulttwo = $mysqli->query($querytwo);
}
?>
搞定了。我将该行更改为$querytwo = "DELETE FROM paginas WHERE id= $_POST[id]";
它的功能。虽然有一个警告通知说“Notice: Undefined index”
但是由于error_reporting(0);
答案 0 :(得分:0)
你可以:
$querytwo = 'DELETE FROM `paginas` WHERE id= ' . $row['id'] . ' LIMIT 1';
答案 1 :(得分:0)
你可以使用:
$querytwo = 'DELETE FROM paginas WHERE id= $_POST["id"]';
无需使用限制,您使用id作为参考,因此它将删除一条记录。
答案 2 :(得分:0)
您需要使用双引号进行变量插值。使用单引号,您看到的确切字符串是作为数据库查询发送的内容,该查询不是有效查询。这样的东西实际上会替换字符串中POST变量的值:
$querytwo = "DELETE FROM paginas WHERE id = $_POST[id]"
但是,将变量直接插入查询字符串是一个坏主意,因为它可能导致SQL注入漏洞。我建议查找参数化查询。