Как сделать пагинацию на php

Пагинация – простой и эффективный способ разбить огромные объемы данных на более манерные части. Узнайте, как сделать пагинацию на php с примером кода. Узнайте, как правильно прописать запросы к базе данных, оформить код и выводить результат.

Пагинация позволяет большим количествам данных быть разбитыми на меньшие части и быть представленными пользователям в удобном виде. Php предоставляет различные способы разделения данных на части и представления их пользователям. Один из этих способов – использование пагинации.

Пример пагинации на php

Для примера использования пагинации на php мы будем использовать таблицу, содержащую информацию о пользователях. Наша таблица имеет следующую структуру:


CREATE TABLE users (
  id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL,
  age INT NOT NULL
);

Для начала мы должны получить общее количество строк в нашей таблице. Для этого мы используем следующий запрос SQL:


SELECT COUNT(*) FROM users;

Этот запрос вернет число, которое мы можем использовать для расчета количества страниц, на которые будет разделена наша таблица. Для этого мы можем использовать следующую функцию:


function getTotalPages($total, $itemsPerPage) {
  $totalPages = ceil($total / $itemsPerPage);
  return $totalPages;
}

Эта функция принимает два аргумента: общее количество записей и количество записей на одной странице. Она возвращает общее количество страниц. Теперь мы можем использовать эту функцию для расчета общего количества страниц для нашей таблицы:


$total = getTotalRecords(); //получаем общее количество записей
$totalPages = getTotalPages($total, 10); //рассчитываем общее количество страниц

В этом примере мы получаем общее количество записей в таблице и рассчитываем общее количество страниц, где каждая страница содержит по 10 записей. Теперь мы можем получить данные для отображения на определенной странице при помощи SQL-запроса:


SELECT * FROM users LIMIT 10 OFFSET $offset;

В этом запросе параметр $offset указывает на номер страницы, данные которой мы хотим получить. Например, если мы хотим получить данные для второй страницы, то мы должны передать значение 10 для параметра $offset. Значение для параметра $offset может быть вычислено с помощью следующей формулы:


$offset = ($page - 1) * $itemsPerPage;

Теперь мы можем использовать эту формулу для вычисления значения $offset для нужной страницы. Например, для второй страницы мы можем использовать следующее выражение:


$offset = (2 - 1) * 10;

Чтобы показать пагинацию, мы можем использовать следующий код HTML:


<ul>
  <?php for ($i = 1; $i <= $totalPages; $i++) { ?>
    <li><a href="?page=<?php echo $i;?>"><?php echo $i;?></a></li>
  <?php } ?>
</ul>

Этот код для каждой страницы выводит ссылку, которая позволяет перейти на соответствующую страницу. Таким образом, мы можем получить простую пагинацию для нашей таблицы пользователей.

Ответы (0)