Вывод информации из БД при прокрутке страницы
Помогите разобраться с выводом из БД. Есть таблица test. В таблице есть 30 записей и первоначально выводится 10 последних записей
message 21
message 22
message 23
message 24
message 25
message 26
message 27
message 28
message 29
message 30
При прокрутке страницы пытаюсь получить предыдущие записи в количестве 10 штук:
Ожидается получить следующий вывод над сообщением message 21
message 11
message 12
message 13
message 14
message 15
message 16
message 17
message 18
message 19
message 20
А получаю в действительности такой
message 20
message 19
message 18
message 17
message 16
message 15
message 14
message 13
message 12
message 11
Сам запрос к БД PDO выглядит так
$res = $db->prepare("SELECT * FROM (SELECT * FROM `test` WHERE `id` < ? ORDER BY `id` DESC LIMIT 10) s ORDER BY `id` ASC");
$res->execute([$_POST["id"]]); // в $_POST["id"] передается id первого сообщения (в нашем случае это message 21)
while ($record = $res->fetch(PDO::FETCH_ASSOC)){
$arr[] = $record;
}
return array_reverse($arr);
Если я запрос делаю в phpmyadmin
SELECT * FROM (SELECT * FROM `test` WHERE `id` < 21 ORDER BY `id` DESC LIMIT 10) s ORDER BY `id` ASC
То вывод показывает как нужно.
Что я делаю не так?
Источник: Stack Overflow на русском