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 сообщении сортировка нарушается. Почему?
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
yesbro
@yesbro
Думаю, помогаю думать
1) У тебя закрывающаяся фигурная скобка пропущена в приведенном коде.

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

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

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

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

Войти через центр авторизации
Похожие вопросы