Разбить результаты запроса по категориям - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь создать запрос, чтобы получить 25 веток форума (на страницу) для определенной категории форума, а затем пытаюсь упорядочить их по убыванию идентификатора, чтобы сначала показывать новые сообщения, хотя, похоже, не могу его получить работать ...

Вот PHP и SQL

$category =  $_GET['category'];
$show_thr_max =  $_GET['thr'];
$show_thr_min =  $show_thr_max - 24;

$threadsq = "SELECT * FROM `forum_post` WHERE `post_cate_id` = '$category' AND `id` BETWEEN '$show_thr_min' AND '$show_thr_max'";
$threadsr = mysqli_query($con, $threadsq);

$category - это идентификатор категории, из которой можно получить связанные темы,

$show_thr_ max установлен на 25, увеличиваясь на 25 по мере прохождения каждой страницы, это максимальный диапазон потоков для захвата.

$shrow_thr_min устанавливает минимальный диапазон (на 24 меньше _max) потоков для захвата.

Запрос захватывает потоки между диапазонами, они относятся к правильной категории, хотя он захватывает первые 25, которые он может найти, а не 25 с самым высоким идентификатором.

Таким образом, на первой странице будут показаны идентификаторы от 25 до 1 вместо 91 до 66, что является желаемым результатом

Я знаю, что в SQL есть таблица приоритетов для предложений, это может быть причиной? Заказ до того, как все условия были выполнены?

Большое спасибо за помощь:)

1 Ответ

0 голосов
/ 11 сентября 2018

Возможно, вам удастся обойтись, просто воспользовавшись запросом LIMIT/OFFSET здесь:

SELECT *
FROM forum_post
ORDER BY id DESC
LIMIT 25
OFFSET 25;     -- replace 25 with whatever page you want

Некоторые критически важны для использования ограничения / смещения для нумерации страниц, поскольку иногда новые данные могут поступать вПредыдущая страница, скинуть логику подкачки.Однако, в вашем случае, сообщения, которые были сделаны в прошлом, не могут быть добавлены или изменены (скорее всего).Таким образом, в этом случае, предел / смещение должны быть жизнеспособным вариантом.

Если вы действительно хотите обрабатывать свою собственную нумерацию страниц, то использование id может быть проблематичным, поскольку нет гарантии, что этобыть полностью последовательным (если вы сами строго не контролировали его).

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