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

Как реализовать пагинацию в категориях?

Можете просто описать логику, как происходит вывод статей по категории с пагинацией?
  • Вопрос задан
  • 323 просмотра
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Алгоритм делится на 2 части, хотя переменные используются одни и те же. 1 часть отвечает за выборку текущего набора статей/итемов согласно указанной страницы. Обычно передается как параметры LIMIT и OFFSET в запрос бд к нужной таблице, в итоге получаем только набор для текущей страницы.
Вторая часть формирует навигацию: подсчет количества страниц в пагинации, линки на ближайшие страницы, линки назад/вперед/начало/конец. Простая арифметика в 2-3 действия.
Собсно все.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
PavelK
@PavelK
Проще всего по смещению:
договариваемся, что переменная будет offset
при запросе (запуске скрипта) смотрим значение переменной из $_GET
(если её в запросе нет, ставим значение 0)

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

выводим ссылку на следующую страницу в ссылке указываем offset=offset+20 (т.е. текущее значение + 20 - сколько постов уже вывели)

разумеется нужно проверять как валидность самого параметра offset, например просто
$offset = intval($_GET["offset"]);
ну и так же проверять - нужно ли выводить ссылку на следующую страницу
if ($offset+20 <= $postCount) { //-- посты ещё есть
}

Это в общем и самый простой способ по-моему.
Дальше уже в зависимости как посты получаете - может что бы лишние посты не получать из базы, будет проще установить для запроса select .... LIMIT (offset, 20)

проблемы возникнут с этим способом если так же нужна сортировка постов либо посты будут часто добавляться/удаляться и подгрузка нужна через ajax.
Ответ написан
Ваш ответ на вопрос

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

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