Разбиение на страницы PHP

  1. Используйте предложение LIMIT с оператором SELECT в SQL для разбивки строк на страницы в PHP
  2. Добавьте функцию навигации Previous и Next в разбивку на страницы в PHP

В этой статье будет представлен метод выполнения разбивки на страницы в PHP с использованием предложения LIMIT с оператором SELECT в SQL. Мы будем использовать предложение LIMIT, чтобы выбрать определенное количество строк, начиная с определенного индекса, для отображения в виде разбивки на страницы.

Мы также продемонстрируем другой метод добавления функции навигации Previous и Next в разбивку на страницы PHP. Этот метод только добавляет дополнительную функцию для перехода на соответствующие страницы к первому методу.

Используйте предложение LIMIT с оператором SELECT в SQL для разбивки строк на страницы в PHP

Мы можем использовать предложение LIMIT с оператором SELECT, чтобы указать первые n результатов, отображаемых на странице. Мы можем указать номер страницы в теге anchor как метод GET для просмотра страниц. В этом методе мы определяем количество строк, отображаемых на странице, и извлекаем все строки из базы данных, чтобы вычислить общее количество требуемых страниц. Мы можем использовать массив $_GET с функцией isset(), чтобы получить номер страницы, запрошенный пользователем.

Например, создайте переменную $results_per_page и сохраните в ней 2. Используйте функцию mysqli_num_rows(), чтобы найти количество строк в базе данных и сохранить в переменной $number_of_results. Используйте функцию ceil(), чтобы определить общее количество страниц, необходимых для отображения строк. Разделите переменную $number_of_results на переменную $results_per_page внутри функции ceil(). Используйте суперглобальную переменную $_GET с функцией isset(), чтобы проверить, установлена ​​ли переменная page. Если он не задан, установите для переменной page значение 1. Если переменная задана, присвойте значение переменной page. Вычтите переменную page на 1 и умножьте ее на переменную $this_page_first_result. Сохраните операцию в переменной $this_page_first_result. Напишите оператор SQL с предложением LIMIT как SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page.. Запустите запрос и отобразите результаты. В конце создайте цикл for для перехода между переменной page и $number_of_page. Внутри цикла эхо тега anchor запишите значение атрибута href как index.php?page'.$page. Между тегами anchor напишите переменную page.

В приведенном ниже примере таблица alpha в базе данных содержит шесть строк. После выполнения разбивки на страницы на каждой странице отображаются две строки. Функция ceil() определяет общее количество страниц, необходимых для отображения строк. Изначально переменная $page не установлена, поэтому страница начинается со страницы 1. Переменная $this_page_first_result определяет номер страницы, на которой в данный момент находится пользователь. Переменные $this_page_first_result обозначают первую строку страницы. Переменная $results_per_page обозначает количество результатов на странице. В разделе вывода отображается страница index.php. При нажатии на страницу 2 выводятся следующие две строки из базы данных.

Пример кода:

#php 7.x
<?php
$number_of_pages = ceil($number_of_results/$results_per_page);
if (!isset($_GET['page'])) {
    $page = 1;
} else {
    $page = $_GET['page'];
}
$this_page_first_result = ($page-1)*$results_per_page;
$sql='SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page;
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
    echo $row['id'] . ' ' . $row['value']. '<br>';
}
for ($page=1;$page<=$number_of_pages;$page++) {
    echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
?>

Выход:

1 A 
2 B 
1 2 3

Добавьте функцию навигации Previous и Next в разбивку на страницы в PHP

Мы можем добавить несколько дополнительных фрагментов кода в пример кода в первом методе, чтобы обеспечить функцию навигации Previous и Next при разбивке на страницы. Мы можем увеличивать и уменьшать переменную $page на 1, чтобы указывать на предыдущую и следующую страницу. Мы можем использовать увеличенные и уменьшенные переменные в теге anchor для достижения функций Next и Previous.

Например, создайте две переменные: $prev и $next. Вычтите переменную $page на единицу и назначьте операцию переменной $prev. Аналогичным образом добавьте единицу к переменной $page и назначьте ее переменной $next. Выведите тег anchor с надписью Previous прямо перед циклом for номеров страниц. Напишите значение index.php?page=' . $prev . В атрибуте href тега якорь. Таким же образом сделайте еще один тег anchor для Next, используя переменную $next в качестве значения page в атрибуте href.

В разделе вывода ниже показана вторая страница. При нажатии на Previous происходит переход на первую страницу, а при нажатии на Next - на третью страницу.

Пример кода:

# php 7.x
<?php
$prev = $page -1;
$next = $page +1;
echo ' <a href="index.php?page=' . $prev . '"> Previous </a> ';
for ($page=1;$page<=$number_of_pages;$page++) {
    echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
echo ' <a href="index.php?page=' . $next . '"> Next </a> ';
?>

Выход:

3 C 
4 D 
Previous 1 2 3 Next