PHPでメッセージシステムを作成しました。私のデータベースには次のテーブルがあります。
users('user_id', 'name')
message_group('user_one', 'user_two', 'hash', 'date1', 'del1', 'del2')
messages('message_id', 'group_hash', 'from_id', 'message', 'date', 'read')
データベースからすべてのメッセージを抽出するために while ステートメントを使用している次のコードを作成しました。次に、フォームを使用して各メッセージを削除しようとしています。問題は、すべてのメッセージが削除されることです。一度に必要なものだけを削除するにはどうすればよいですか? メッセージを削除するために、user_one=$session_user_id または user_two=$session_user_id に対して、それぞれ、messages_group del1=1 または del2=1 のテーブルに配置することを検討してください。
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<input type="submit" name="delete_all" value="Delete All" style="margin-left:250px;"/>
</form>
ここでphpコードを開始します
$get_con = mysql_query(" SELECT `hash`, `user_one`, `user_two`, `date1` FROM `message_group` WHERE `user_one`='$session_user_id' OR `user_two`='$session_user_id' ORDER BY `date1` DESC ");
//start while
while($run_con = mysql_fetch_array($get_con)){
$hash = $run_con['hash'];
$user_one = $run_con['user_one'];
$user_two = $run_con['user_two'];
if($user_one == $session_user_id){
$select_id = $user_two;
}else{
$select_id = $user_one;
}
$user_get = mysql_query(" SELECT `user_id`, `name` FROM `users` WHERE `user_id`='$select_id' ");
$run_user = mysql_fetch_array($user_get);
$user_id = $run_user['user_id'];
$a = mysql_query(" SELECT `user_one`, `user_two`, `hash`, `date1`, `del1`, `del2` FROM `message_group` WHERE `user_one`='$session_user_id' AND `hash`='$hash' AND `del1`='1' ");
$b = mysql_query(" SELECT `user_one`, `user_two`, `hash`, `date1`, `del1`, `del2` FROM `message_group` WHERE `user_two`='$session_user_id' AND `hash`='$hash' AND `del2`='1' ");
if(mysql_num_rows($a)==0 && mysql_num_rows($b)==0){
echo" $select_name </br> ";
$message_query = mysql_query(" SELECT `messages_id`, `from_id`, `message`, `date` FROM messages WHERE group_hash='$hash' ORDER BY `date` ASC ");
while($run_message = mysql_fetch_array($message_query)){
$message = $run_message['message'];
}
$ka = mysql_query("SELECT `messages_id`, `group_hash`, `from_id`, `message`, `date`, `read` FROM `messages` WHERE `group_hash`='$hash' AND `read`='1' ");
if(mysql_num_rows($ka) != 0){
echo " <a href='messages.php?hash=$hash'>$message ...</a>";
}
if(isset($_POST['delete_all'])) {
if($user_one == $session_user_id){
mysql_query(" UPDATE `message_group` SET `del1`='1' WHERE `hash`='$hash' ");
}else if($user_two == $session_user_id){
mysql_query(" UPDATE `message_group` SET `del2`='1' WHERE `hash`='$hash' ");
}
}
}//end while