Задать вопрос
alexandreyakuboff
@alexandreyakuboff

Почему данные из базы данных не сортируются в PHP PDO?

Делал чат, для этого создал таблицу в MySQL, которая называется messages (имеет 4 столбца: ID, user1, user2 и message) и подключился к ней через pdo query:
$messages = $pdo->query('select * from messages where (user1="'.$_SESSION['user_name'].'" and user2="'.$_POST['user2'].'") or (user2="'.$_SESSION['user_name'].'" and user1="'.$_POST['user2'].'") ORDER by id');
                    while($message = $messages->fetch()){
                        if($message['user1'] == $_SESSION['user_name']){
                            echo "
                            <div id='message'>".$_SESSION['user_name'].": ".$message['message']."</div>
                            ";
                        }
                        if($message['user2'] == $_SESSION['user_name']){
                            echo "
                            <div id='message'>".$_POST['user2'].": ".$message['message']."</div>
                            ";
                        }

Но примерно на 20 сообщении сортировка нарушается. Почему?
  • Вопрос задан
  • 154 просмотра
Подписаться 1 Простой 3 комментария
Решения вопроса 1
yesbro
@yesbro
Думаю, помогаю думать
1) У тебя закрывающаяся фигурная скобка пропущена в приведенном коде.

2) Запрос правильный, от старых к новым.

3) Не забывай про защиту от SQL-инъекций, подставляй данные через плейсхолдеры

4) И самое главное внимательно посмотри на свои if. Ты всегда выводишь реплики только одного участника чата.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы