Verification: a143cc29221c9be0

Paging with mysql and php

Paging with mysql and php

Подключение БД:

Первым делом как обычно нужно подключить базу данных, для этого видите этот код.

$server = 'localhost'; // Имя или адрес сервера

$user = 'root'; // Имя пользователя БД

$password = ''; // Пароль пользователя

$db = 'test'; // Название БД

$db = mysqli_connect($server, $user, $password, $db); // Подключение

// Check connection

// Проверка на подключение

if (!$db) {

    // Если проверку не прошло, то выводится надпись ошибки и заканчивается работа скрипта

    echo "Не удается подключиться к серверу базы данных!";

    exit;

}

В этом коде первым делом у нас идут переменные для настройки при подключение БД, потом уже подключаемся, после пишем условии для проверки подключения базы данных, если его нет, то выводим надпись «Не удается подключиться к серверу базы данных!», и запрещаем дальше работать скрипту.

Создание пагинации на PHP:

Теперь перейдём к самому созданию основного кода, первым делом настроим номер страницы.

// Поверка, есть ли GET запрос

if (isset($_GET['pageno'])) {

    // Если да то переменной $pageno присваиваем его

    $pageno = $_GET['pageno'];

} else { // Иначе

    // Присваиваем $pageno один

    $pageno = 1;

}

// Назначаем количество данных на одной странице

$size_page = 5;

// Вычисляем с какого объекта начать выводить

$offset = ($pageno-1) * $size_page;

Тут не чего особо сложного нет, в начале проверяем, если у нас GET запрос pageno, который отвечает за номер страницы, если есть, то присваиваем этот номер переменной $pageno, иначе ей даём значение один.

Также создаём переменную $size_page в которой хранится сколько данных нужно выводить на одной страницы, и $offset, которая вычисляет с какого элемента нужно начать выводить.

Теперь нужно вычислить сколько всего мы имеем страниц.

// SQL запрос для получения количества элементов

$count_sql = "SELECT COUNT(*) FROM `user`";

// Отправляем запрос для получения количества элементов

$result = mysqli_query($db, $count_sql);

// Получаем результат

$total_rows = mysqli_fetch_array($result)[0];

// Вычисляем количество страниц

$total_pages = ceil($total_rows / $size_page);

Тут сперва мы создаём строку с SQL запросом, которое получает количество элементов в БД, потом отправляем этот запрос в базу данных, и получаем число количества , потом вычисляем сколько всего страниц, делением количеств элементов, на число данных на одной странице.

Делаем вывод данных.

// Создаём SQL запрос для получения данных

$sql = "SELECT * FROM `user` LIMIT $offset, $size_page";

// Отправляем SQL запрос

$res_data = mysqli_query($db, $sql);

// Цикл для вывода строк

while($row = mysqli_fetch_array($res_data)){

    // Выводим логин пользователя

    echo $row['login'] . '';

}

// Закрываем соединение с БД

mysqli_close($db);

Здесь мы создаём SQL запрос и в нём после слова LIMIT назначаем от какого элемента брать и сколько, потом делаем запрос к БД, и вывод данные которые получили, закрываем соединение с MySQL.

Последние нужно добавить кнопки пагинации, для этого вот что пишем.

ul class="pagination">

    li>a href="?pageno=1">First/a>/li>

    li class="">

        a href="?pageno=".($pageno - 1); } ?>">Prev/a>

    /li>

    li class="= $total_pages){ echo 'disabled'; } ?>">

        a href="= $total_pages){ echo '#'; } else { echo "?pageno=".($pageno + 1); } ?>">Next/a>

    /li>

    li>a href="?pageno=">Last/a>/li>

/ul>

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

скрипт простой пагинации на php

Если мы нажмём на кнопку «Next», то у нас переключится, вот это всё что нужно знать.