Постраничное разбиение на PHP
Некоторую информацию, например список новостей, статей и так далее, удобнее выводить на экран несколькими страницами. Для того чтоб сделать это на PHP нам понадобится выполнить два SQL-запроса и небольшой фрагмент кода.
Здесь приводятся только тексты SQL-запросов. Функции для работы с этими запросами и самой базой данных вы выбираете сами (это могут быть стандартные функции PHP или функции сторонних библиотек, таких как PHPLIB).
Допустим, каждая запись в таблице имеет порядковый номер - поле "id", тогда первым запросом извлечем из таблицы общее количество записей:
"SELECT COUNT(`id`) FROM `table_name`";
Теперь рассчитаем количество страниц ($page_count):
$page_count = ceil($count / $onpage);
где $count - общее количество записей в таблице полученное выше, а $onpage - количество записей на странице.
Допустим, номер страницы нашему скрипту мы будем передавать методом GET, например так: index.php?page=2, тогда GET['page'] будет содержать номер страницы. Но что если пользователь передаст нам неправильный номер страницы, например "-1", "999999999999" или вообще буквы? Для преодоления данной ситуации нужен следующий фрагмент кода:
$cur_page = intval(GET['page']);
if(($cur_page > 0) && ($cur_page <= $page_count))
$page = $cur_page;
else $page = 1;
т. е. в случае чего отображаем первую страницу.
Осталось найти номер записи, с которой начинать вывод результатов с помощью второго SQL-запроса:
$fromrec = ($page - 1) * $onpage;
Теперь второй SQL-запрос для получения записей на текущей странице, которые мы и будем выводить на экран:
"SELECT * FROM `table_name` LIMIT ".$fromrec.", ".$onpage;
Все, данные получены. Вы можете вывести их на экран с номерами страниц от 1 до $page_count, например ссылка "<a href="index.php?page=2">страница 2</a>" направит вас на страницу 2.
Номер страницы в данном случае (и в нашем примере) передается скрипту методом GET.
|
|
оценка: 0
автор: simplex
|
комментариев нет
Добавить комментарий