$result = mysqli_query($conn,"select * from `favourites` WHERE user_id = '$session'");
while($row = mysqli_fetch_assoc($result)) { ?>
<input type="hidden" value="<?php echo $row['id']; ?>" name="name"/>
<? $pid=$row['id'];
}
if(isset($_POST['delete'])) {
$delete="DELETE FROM `favourites` WHERE id = '$pid' AND user_id = '$session'";
if (mysqli_query($conn, $delete)) {
echo "Record deleted successfully " . $id;
} else {
echo "Error deleting record: " . mysqli_error($conn);
}
}
所以这个页面的故事是显示用户喜欢的所有图像(Witch的作品)。当然,如果用户想要删除它们,我添加了&#34;删除&#34;按钮。但问题是,当我按下任何图片上的按钮时,它只会删除最后一张图片。例如,我有ID为10,11,12,13的图片......它们按顺序显示所以当我按delete
打开exmp图片11时,它会删除图片13.所以基本上无论我想从表中删除什么图片,它总是删除最后一张图片。我把隐藏按钮放在while循环中以获取图片ID,并设置删除条件在If statment中当该id等于表中的id时删除。
任何想法我做错了什么?
编辑 - 删除表单:
<form method="post">
<input type="hidden" value="<?php echo $row['name']; ?>" name="name"/>
<input type="hidden" value="<?php echo $row['id']; ?>" name="nameid"/>
<button type="submit" class="btn btn-danger btn-circle" name="delete"><i class="glyphicon glyphicon-remove"></i></button>
</form>
答案 0 :(得分:1)
DELETE FROM `favourites` WHERE id = '$pid'
这个$pid
将在while循环结束后拥有最后一个id,从而只删除最后一个
答案 1 :(得分:1)
您的表单正在发布名称为“nameid”的要删除的图片的ID。所以在删除查询中使用已发布的ID。
unknown command token=123