Добро пожаловать, Гость!
Постраничная навигация (new) - Полезный php код №53
Все категории

Постраничная навигация (new)

Описание: Еще один вариант постраничной навигации. Запоминает GET параметры, так же поддерживает ссылки вида ЧПУ.
Код:

<?php
 
function pagenation($page$count_pages$modrew TRUE) {
 
/*
 $back - ссылка НАЗАД
 $forward - ссылка ВПЕРЕД
 $startpage - ссылка в НАЧАЛО
 $endpage - ссылка в КОНЕЦ
 $page2left - вторая страница слева
 $page1left - первая страница слева
 $page2right - вторая страница справа
 $page1right - первая страница справа 
 */
 
$uri '?';
 if (!
$modrew) {
 
/* Если есть параметры в адресной строке */
 
if ($_SERVER['QUERY_STRING']) {
 unset(
$_GET['page']);
 foreach (
$_GET as $key => $value) {
 
$uri .= $key '=' $value '&';
 }
 }
 } else {
 
$url $_SERVER['REQUEST_URI'];
 
$url explode("?"$url);
 if (!empty(
$url[1])) {
 
$params explode("&"$url[1]);
 foreach (
$params as $param) {
 if (!
preg_match("#page=#"$param)) {
 
$uri .= $param .'&';
 }
 }
 }
 }
 if (
$page 1) {
 
$back '<a class="nav-link" href="'.$uri.'page='.($page 1).'"><</a>';
 }
 if (
$page $count_pages) {
 
$forward '<a class="nav-link" href="'.$uri.'page='.($page 1).'">></a>';
 }
 if (
$page 3) {
 
$startpage '<a class="nav-link" href="'.$uri.'page=1">«</a>';
 }
 if (
$page < ($count_pages 2)) {
 
$endpage '<a class="nav-link" href="'.$uri.'page='.$count_pages.'">»</a>';
 }
 if ((
$page 2) > 0) {
 
$page2left '<a class="nav-link" href="'.$uri.'page='.($page 2).'">'.($page 2).'</a>';
 }
 if ((
$page 1) > 0) {
 
$page1left '<a class="nav-link" href="'.$uri.'page='.($page 1).'">'.($page 1).'</a>';
 }
 if ((
$page 2) <= $count_pages) {
 
$page2right '<a class="nav-link" href="'.$uri.'page='.($page 2).'">'.($page 2).'</a>';
 }
 if ((
$page 1) <= $count_pages) {
 
$page1right '<a class="nav-link" href="'.$uri.'page='.($page 1).'">'.($page 1).'</a>';
 }
 return 
$startpage $back $page2left $page1left '<span class="nav-active">' $page '</span>' $page1right $page2right $forward $endpage;
 }
 <
strong>Пример использования:</strong>
 
$perpage 10// Записей на страницу
 
$count mysqli_fetch_row(mysqli_query($db"SELECT COUNT(*) FROM files"));
 
$total $count[0]; // Всего товаров
 
$count_pages ceil($total $perpage); // Всего страниц
 
if (!$count_pages) { // минимум 1 страница
 
$count_pages 1;
 }
 if (!empty(
$_GET['page'])) { // текущая страница
 
$page abs((int)$_GET['page']);
 if (!
$page) {
 
$page 1
 }
 } else {
 
$page 1;
 }
 if (
$page $count_pages) {
 
$page $count_pages;
 }
 
$start_pos = ($page 1) * $perpage;
 
$pagenation pagenation($page$count_pages); // постраничная навигация
 
echo $pagenation'<br />'// Выводим
 
$query "SELECT * FROM files ORDER BY id DESC LIMIT $start_pos$perpage";
 
$result mysqli_query($db$query);
 while (
$row mysqli_fetch_array($result)):
 
?>


<a href="files/

<?= $row['path'?>


"><img src="files/

<?= $row['path_mini'?>


" alt=""/></a><br />

<?php
 
endwhile;
 
?>


Добавил: Виджик (27 Ноября 2014)

Скачать: TEXTAREA
DCMS-Social.ru - движок социальной сети, вап и веб мастерская, файло-обменник и форум.
Статистика DCMS-Social.ru: Пользователей - 14971, тем на форуме - 30292, сообщений - 298888