从表中删除特定值

时间:2016-04-05 12:54:25

标签: php html mysql mysqli

 $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>

2 个答案:

答案 0 :(得分:1)

DELETE FROM `favourites` WHERE id = '$pid'

这个$pid将在while循环结束后拥有最后一个id,从而只删除最后一个

答案 1 :(得分:1)

您的表单正在发布名称为“nameid”的要删除的图片的ID。所以在删除查询中使用已发布的ID。

unknown command token=123