在while语句中选择ID PHP
问题描述:
我在尝试创建一个函数,允许用户删除他们已经离开的帖子。基本上我试图选择一个ID然后将它传递给另一个函数来删除它。目前的代码是删除每个评论,而不仅仅是像我试图链接到ID的评论。在while语句中选择ID PHP
下面是表值
Table eventUpdates
ID - unique ID. Trying to use this value to delete the post
eventID - references an eventID from another table
eventReply - the "message" or response
eventUserID -ID of the user posting the message
username -username of the person
eventTimestamp -timestamp
所以,目前每个响应被删除。我无法让它删除我发送的ID。
<table border ="1">
<?
$eventUpdates = mysql_query($sql);
while ($list = mysql_fetch_assoc($eventUpdates)) {
echo $updateID;
echo '<tr><td>';
echo $list['username'],"</br>", $list['eventTimestamp'],'<br/>';
if($list['eventUserID'] == $userid){ //used for deleting posts. Checks the session to make sure it's the user who made the post
?>
<form method="post">
<input type="submit" name="deleteUpdate" value="Delete Update">
</form>
<?
if(isset($_POST['deleteUpdate'])){
$updateID = $list['ID'];
$delete = new postprocessing;
$delete->deleteEventUpdate($updateID);
echo '<meta http-equiv="refresh" content="0;url=main.php">';
}
}
echo '</td><td>';
echo $list['eventReply'];
echo '</td></tr>';
}
这里是用来删除
function deleteEventUpdate($ID){
mysql_query("delete from eventUpdates where ID = '$ID'");
}
答
的功能。这是因为你没有指定你想要的职位数组中删除的ID,所以每一个评论,他们创造了“匹配”的删除标准。 $_POST
数组看起来像:
$ _POST = array('deleteUpdate'='删除更新');
所以,当你通过事件列表循环,每一个评论用户“拥有”($list['eventUserID'] == $userid
)符合条件“isset($_POST['deleteUpdate'])
”:
您需要包括与特定的ID隐藏的输入评论要删除并匹配反对,以及:
<form method="post">
<input type="submit" name="deleteUpdate" value="Delete Update">
<input name='post_id' value="<?php echo $list['ID'];?>" type='hidden' />
</form>
,然后在循环:
if(isset($_POST['deleteUpdate']) && isset($_POST['post_id']) && $_POST['post_id']==$list['ID']){...
+0
真棒,非常感谢。这是一个漫长的一天,使用隐藏的输入甚至没有想到。谢谢您的帮助! – user1104854 2012-04-25 02:23:26
嗯,这会删除C的所有评论ourse。由于您正在循环整个列表,因此每次循环时,都会删除该事件的所有注释。因此,在循环结束时删除所有注释 – 2012-04-25 02:11:30
我在循环之外尝试了同样的事情,但后来我意识到它不知道我试图选择哪个ID。 – user1104854 2012-04-25 02:15:57
以及我猜这就是它,发送一个空白的ID将删除所有内容:) – 2012-04-25 02:17:02