{% else-1 %}
Еще один вариант постраничной навигации. Запоминает 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).'">&lt;</a>';
}
if ($page < $count_pages) {
$forward = '<a class="nav-link" href="'.$uri.'page='.($page + 1).'">&gt;</a>';
}
if ($page > 3) {
$startpage = '<a class="nav-link" href="'.$uri.'page=1">&laquo;</a>';
}
if ($page < ($count_pages - 2)) {
$endpage = '<a class="nav-link" href="'.$uri.'page='.$count_pages.'">&raquo;</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;
}

[b]Пример использования:[/b]
$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;
?>
7 64 0
0

Нет фото
• 14 сен 2014, 08:19


Ань, не слушай ты их !

0

Нет фото
System * [мошенник] 0.85
• 13 сен 2014, 22:28


Тьфу ребята, это же девушка, могли и по окуратней выражатся *
Ань)) советую про оптимизацию почитать))
И при подсчете столбиков в бд выделяй конкретный столбик))
зыы вместо COUNT(*) ставь COUNT(`id`) легче обрабатыватся будет *
А так пойдет...)

0

Нет фото
adilhan * 0.07
• 13 сен 2014, 13:57


rnddev, Плюсую

0

Нет фото
donttime * [мошенник] 9.68
• 13 сен 2014, 13:54


Все сообщения ниже оставлены имбецилами *

0

Нет фото
• 12 сен 2014, 08:25


Бред*