Я вставляю чаты в таблицу базы данных для личного чата, но не могу их правильно отобразить - PullRequest
0 голосов
/ 29 мая 2018

Здесь таблица базы данных, куда я вставляю чаты.

Я использую сеанс пользователя, чтобы определить отправитель , и использую метод get для приемника и сохранение отправителя и получателя в $ _SESSION ['user'] и $ _SESSION ['receive_user'].Когда я показываю чаты, я загружаю их с помощью ajax из другого php-файла.В этом php-файле я получаю значения sender и receive этими двумя сессиями $ _SESSION ['user'] и $ _SESSION ['receive_user'].и используя следующий код для отображения

<?php  
session_start();

$user = $_SESSION['user'];

$receiver_user = $_SESSION['receiver_user'];

$m_query = "SELECT * FROM pm WHERE (sender='$user' AND receiver = '$receiver_user') OR (receiver ='$user' AND sender = '$receiver_user') ORDER BY timestamp DESC;";
$m_run = mysqli_query($con, $m_query);
   if(mysqli_num_rows($m_run)>0){
        while($m_row=mysqli_fetch_array($m_run)){
            $message = $m_row['message'];
            $user1 = $m_row['sender'];
            $user2 = $m_row['receiver'];
            $time = $m_row['timestamp'];

            if($user1==$user){





        ?>

            <li class="chat1"><h5 style=""><?php echo $us_name; ?>: <b><?php echo $message; ?></b></h5></li>
            <?php  
                    }
                    else{
            ?>
            <li class="chat2"><h5 style=""><?php echo $receiver_name ; ?>: <b><?php echo $message; ?></b></h5></li>
            <?php

                    }

                }
            }
        ?>

Здесь значение receive сохраняется в $ _SESSION ['receive_user'], где я могу сохранить только одно значение.Но когда пользователь пытается отправить сообщение двум или более разным людям одновременно, используя разные вкладки одного и того же браузера, он показывает одно и то же сообщение на каждой вкладке.потому что $ _SESSION ['receive_user'] может сохранить только одно значение.Например, если A хочет отправить сообщение на B , C , D одновременно, используя разные вкладки браузера, $ _SESSION['receive_user'] становится либо B или C , либо D , поэтому на всех вкладках браузера отображается одно и то же сообщение либо B или C или D .

, если $ _SESSION ['receive_user'] = "B", то отображается сообщение между A и B во всех вкладках.Теперь я хочу, чтобы вы помогли мне решить эту проблему по-другому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...