私は自分のサイトのプライベートメッセージセクションの削除機能を整理しようとしています。基本的にはメッセージを正常に削除しますが、メッセージだけでなく、に接続されている他のすべての返信メッセージも削除できるようにしようとしています。 whileループを介して、個々のメッセージには一意のmessage_idがありますが、応答が含まれる場所などのメッセージの各「会話」には、相互に接続されたすべてのメッセージに同じIDであるmessage_uniqueがあります。
以下の削除コードは次のとおりです。必要なのは、受信者からの返信の場合は変数を1に設定するか、送信者からの場合は削除変数を1に設定することです。これは、sender_deletedとrecipient_deletedの両方を1に設定していますが、設定すべきではありません。
if (isset($_POST['delete_inbox'])) {
foreach($_POST['inbox_select_box'] as $message_unique) //loop through the checkboxes
{
$query = mysql_query("SELECT * FROM messages WHERE message_unique = $message_unique");
while($row = mysql_fetch_assoc($query)){
extract($row);
if ($recipient_id == $user_id){
$sql = "UPDATE messages SET recipient_deleted = '1' WHERE message_unique = '$message_unique'";
$result=mysql_query($sql);
}
else{
$sql = "UPDATE messages SET sender_deleted = '1' WHERE message_unique = '$message_unique'";
$result=mysql_query($sql);
}
}
}
$ user_idは、ログインしているユーザーのIDのグローバル変数です。ご協力いただきありがとうございます。