{% else-1 %}
Перед вами класс постраничной навигации.
Использование:
$c = n; - всего обьектов.
$e =10; //объектов на страницу
$navigator = new Navigator($c, $e);
//Здеся вывод фигни разной из базы
//Выводим саму навигацию и дополнительные передаваемые параметры. Если их ненадо, то пишем NULL
$navigator->print_nav(\'&id=\'.$id);
Вот и всё.

page.php?p=last - последняя страница

                        
<?php

class Navigator{

public $pages; //Количество страниц

public $p; //Текущая страница

public $c;//Всего объектов

public $start;//параметр для LIMIT

public function __construct($c, $e){

$this->pages = ceil($c / $e);

$this->c= $c;

$p = 1;

if(isset($_REQUEST['p'])){

if($_REQUEST['p'] == 'last')

$p=$this->pages;

elseif($_REQUEST['p'] <= $this->pages){

$p = (int)$_REQUEST['p'];

if($p < 1)

$p = 1;

}

}

$this->start = ($p - 1) * $e;

$this->p = $p;

}



public function print_nav($q){

//если больше 1 страници, то выводим навигацию

if($this->pages > 1){

echo'<div class="post">';

//фперёд-назад

if($this->p > 1)

echo'<a href="'.$_SERVER['PHP_SELF'].'?p='.($this->p - 1).$q.'" accesskey="7">&laquo;-Назад</a>';

if($this->p < $this->pages && $this->p > 1)

echo' | ';

if($this->p < $this->pages)

echo'<a href="'.$_SERVER['PHP_SELF'].'?p='.($this->p + 1).$q.'" accesskey="9">Дальше-&raquo;</a>';

}

echo'<br/>

Страницы: ';

//дальше выводим цыферки

$prev=$this->p - 2;

$next=$this->p + 3;



if($prev < $this->c && $prev > 1)

echo'<a href="'.$_SERVER['PHP_SELF'].'?p=1'.$q.'">1</a> ... ';



for($i = $prev; $i < $next; $i++)

{

if($i <= $this->pages && $i >= 1){

if($this->p == $i)

echo'<strong>['.$i.']</strong>';

else

echo' <a href="'.$_SERVER['PHP_SELF'].'?p='.$i.$q.'">'.$i.'</a> ';

}

}

if($next <= $this->pages)

echo ' ... <a href="'.$_SERVER['PHP_SELF'].'?p='.$this->pages.$q.'">'.$this->pages.'</a>';

//а это форма

echo'<form action="'.$_SERVER['PHP_SELF'].'?'.$q.'" method="post">

<p>

<input name="p" size="4" maxlength="4" value=""/><input type="submit" value="&raquo;"/>

</p></form></div>';

}



}

}



?>
0 14 0
0

Нет фото
MeXaHuK * 2.65
• 14 ноя 2015, 16:15


*

0

Нет фото
MeXaHuK * 2.65
• 14 ноя 2015, 16:09


*

0

Нет фото
• 15 фев 2014, 18:46


На сайте дыра 179270400

0

Нет фото
Fallen * 10.22
• 25 окт 2013, 18:24


хех, экзо опередил

0

Нет фото
• 25 окт 2013, 17:40


[code]


class navigaton
{





public $pages;

public $page;

public $start;




function __construct($count,$on_page)
{


$this->pages = ceil($count/$on_page);




$this->page = !$_GET[\'page\'] || $_GET[\'page\'] < 1 ? 1:$_GET[\'page\'] > $this->pages ? $this->pages*int) $_GET[\'page\'];




$this->start = $this->page*$on_page-$on_page;



}


}

[/code]

оптимизировать код не пробовали?