Задать вопрос
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 сообщении сортировка нарушается. Почему?
  • Вопрос задан
  • 161 просмотр
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
yesbro
@yesbro
Думаю, помогаю думать
1) У тебя закрывающаяся фигурная скобка пропущена в приведенном коде.

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

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽