- Теория
- Теория
Считаем смещение
Мы использовали функцию array_slice
, чтобы вывести на страницу лишь шесть товаров. После этого вручную изменили значение переменной $offset
, имитируя передвижение покупателя по страницам каталога. Но нам нужно, чтобы смещение считалось автоматически, в зависимости от страницы, на которой находится покупатель.
Номер страницы указан в параметере запроса page
в адресной строке мини-браузера.
Получим значение этого параметра с помощью $_GET
и сохраним его в переменной. Мы уже работали с параметрами запроса и $_GET
.
$page = $_GET['page'];
Используем значение параметра, чтобы посчитать смещение для любой страницы каталога. Формула выглядит так:
$offset = ($page - 1) * $limit;
Смещение начинается с нуля, а отсчёт страниц — с единицы. Чтобы не пропустить первые шесть товаров, сначала вычтем единицу из номера страницы. Полученное число умножим на количество товаров на странице:
// Если не вычесть единицу:
$offset = 1 * 6; // Первая страница – смещение равно 6
// Правильная формула
$offset = (1 - 1) * 6; // Первая страница – смещение равно 0
$offset = (2 - 1) * 6; // Вторая страница – смещение равно 6
$offset = (3 - 1) * 6; // Третья страница – смещение равно 12
И так далее для любой страницы каталога. То, что нужно!
Посчитаем смещение, используя формулу и параметр из адресной строки. После этого изменим значение в адресной строке и убедимся, что на страницах выводятся правильные товары.
В первых частях, до знакомства с массивами, мы для простоты называли $_GET
командой, но на самом деле это суперглобальный ассоциативный массив. Суперглобальные массивы, как встроенные функции, являются частью языка PHP. Подробнее о них вы можете почитать в документации.
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.