{% else-1 %}
<?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>\';

}



}

}

//8===э канец!

?>

                        
Перед вами класс постраничной навигации. Пример - этот сайт))
Использование:
$c = n; - всего обьектов.
$e =10; //объектов на страницу
$navigator = new Navigator($c, $e);
//Здеся вывод фигни разной из базы
//Выводим саму навигацию и дополнительные передаваемые параметры. Если их ненадо, то пишем NULL
$navigator->print_nav('&amp;id='.$id);
Вот и всё.
Чуть не забыл
page.php?p=last - последняя страница
0 31 0
Без комментариев...