PHP
Як вивести інформацію з БД і розділити на сторінки?
Отже, бачив багато таких штук і всюди все по різному.
Вирішив викласти і свій погляд на це, щоб все було розібрано по кроках і дуже доступно.
Для початку встановимо кількість записів, що виводяться на сторінку.
Потім ми визначимося на якій сторінці знаходимося (в нашому випадку ми будемо передавати номер сторінки GET'ом).
Подивимося скільки всього у нас сторінок, щоб користувач не ввів нас тисячі п'ятсот вісімдесят дев'ять сторінку з 13 можливих
Для цього необхідно підрахувати кількість елементів всього:
А вже кількість сторінок з'ясовується нехитрим методом поділу всіх елементів на кол-во на сторінку і округляється в більшу сторону.
Тепер перевіримо щоб поточна сторінка не була менше 1 і не більше останньої сторінки
Отож, у $ page знаходиться номер нашої сторінки.
Для ліміту в нашому запиті, нам необхідно подстачітать перший оператор, який показує з якою записи ми зачинали робити вибірку
Усе! Запит складено:
У нашому пагінаторе ми не будемо виводити всі сторінки від 1. до 130 наприклад, а будемо виводити тільки сусідні по відношенню до поточної, наприклад якщо у нас обрана сторінка 9, то ми введемо зліва і праворуч від неї пределённое кількість сторінок, припустимо у нас це кількість дорівнюватиме 4.
Визначаємо крайнього лівого і правого сусідів
А як же нам вивести лісталку?
Ось ми і написали модний перемикач сторінок як на багатьох популярних сайтах.