Placido
Наблюдаю
Разбираюсь с вопросом пагинации.
Общие принципы, как я понимаю, могут быть такими.
1. Подсчитывается количество записей, которые нужно вывести (SELECT COUNT() ...), определяется оффсет (зависит от номера страницы), количество рядов (сколько записей нужно вывести на странице) и количество страниц, потом запрос к базе с "SELECT ... LIMIT оффсет, кол-во рядов". После этого вывод.
2. Выборка всех записей (без LIMIT). Все остальные операции производятся уже с массивом - count(), определить оффсет, количество записей, страниц, array_slice(), вывод.
В первом случае в массив выбираются только необходимые записи (это плюс), но двумя запросами к базе (это минус). Во втором - все (это минус), но без лишнего запроса SELECT COUNT(), который скоростью не отличается (это плюс).
Хочу использовать второй метод, так как работаю с Nested Sets, и выборка из базы уже реализована в классе для работы с деревьями. Хочу узнать мнения по этому поводу.
Общие принципы, как я понимаю, могут быть такими.
1. Подсчитывается количество записей, которые нужно вывести (SELECT COUNT() ...), определяется оффсет (зависит от номера страницы), количество рядов (сколько записей нужно вывести на странице) и количество страниц, потом запрос к базе с "SELECT ... LIMIT оффсет, кол-во рядов". После этого вывод.
2. Выборка всех записей (без LIMIT). Все остальные операции производятся уже с массивом - count(), определить оффсет, количество записей, страниц, array_slice(), вывод.
В первом случае в массив выбираются только необходимые записи (это плюс), но двумя запросами к базе (это минус). Во втором - все (это минус), но без лишнего запроса SELECT COUNT(), который скоростью не отличается (это плюс).
Хочу использовать второй метод, так как работаю с Nested Sets, и выборка из базы уже реализована в классе для работы с деревьями. Хочу узнать мнения по этому поводу.