-3

我在一个表中有一个帖子,每个帖子都有一个唯一的 ID。我想使用这个 id 让用户从 mysql 表中删除他或她的帖子。如何找出表的唯一 ID?

while($posts=mysqli_fetch_array($data)){
$tasks=$posts['task'];
$time=$posts['time'];
$date=$posts['date'];
$imp=$posts['important'];
$del=$posts['delete'];
$id=$posts['id'];

//define delete button
$button='<form method="post" action="remindMe.php"><input type="submit" value="Delete Post" name="delete" id='.$id.' /></form>';


if($imp==0 && $del != 0){
echo '<p id="tasks">'.$tasks. '</p><p id="date">'.$date.'</p><p id="time">'.$time.'</p>'.$button.'     <hr />';
}
}


 //see if button is clicked
if(isset($_POST['delete'])){
  $query="UPDATE `task` SET `delete`=0 WHERE `id`='/*id from mysql table*/'";
  mysqli_query($con, $query)
    or die(mysqli_error($con));
}
4

2 回答 2

1

从表单中发布 id 并在提交中检索它,然后执行删除。如果需要,您可以使用隐藏元素甚至 ajax 之类的东西。尝试这个

$button='<form method="post" action="remindMe.php">
           <input type="submit" value="Delete Post" name="delete" id='.$id.' />
           <input type="hidden" name="del_id" value='.$id.'>
         </form>';

//查看按钮是否被点击

if(isset($_POST['delete'])){
  $delid = $_POST['del_id'];
  $query="UPDATE `task` SET `delete`=0 WHERE `id`= $delid";
  mysqli_query($con, $query)
    or die(mysqli_error($con));
}
于 2014-06-16T05:35:31.893 回答
0

您的$button变量呈现在while循环内部。所以它可能会随着新id值的变化而迭代。我没有看到echo你之间的声明while

无论哪种方式如果要使用POST方法,请使用hidden变量

//define delete button
$button='<form method="post" action="remindMe.php">
                 <input type="hidden" name="post_id" value='.$id.' />
                 <input type="submit" value="Delete Post" name="delete" id='.$id.' /> 
              </form>';

添加您的查询将是这样的,

$post_id = $_POST['post_id'];
$query="UPDATE `task` SET `delete`=0 WHERE `id`='".$post_id."'";
于 2014-06-16T05:37:40.863 回答