-1

ユーザーが残した投稿を削除できる機能を作ろうとしています。基本的に、ID を選択し、それを別の関数に渡して削除しようとしています。現在のコードは、私が試みているように ID にリンクされたコメントだけでなく、すべてのコメントを削除しています。

ここにテーブルの値があります

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'");
}
4

1 に答える 1

1

これは、投稿配列で削除する 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']){...
于 2012-04-25T02:15:13.810 に答える