Класс для постраничной навигации
Класс для постраничной навигации с использованием ЧПУ
<? /* *Класс для постраничной навигации* *Автор Vocaloid IA/Kasane Teto* */ class Page { public function __construct($count,$limit=10){ $this->js = false; $this->limit=(int)$limit; $this->page=$this->page(); $this->start=$this->start(); $this->no_post = 'Пусто'; $this->k_page=$this->k_page(); public function page(){ if ($_GET['page'] == 'last'){ $page=$this->k_page; } else{ $page=(int)$_GET['page']; if ($page == 0)$page = 1; } }else $page=1; return $page; } public function start(){ $start=$this->limit*$this->page; $start=$start-$this->limit; return $start; } public function k_page(){ return $pages; } public function out($link){ $url=null; if ($this->k_page > 1){ $url='<table cellpadding="0" cellspacing="0" style="width:100%"><tr><td class="pages" style="width: 35%; border-radius: 6px 0px 0px 6px">'; if ($this->page > 1)$url=$url.'<a style="border: 0px; border-radius: 6px 0px 0px 6px" href="'.htm($link).($this->page-1).'" '.($this->js == true?'load="none" page="'.($this->page-1).'"':null).' class="page">«Назад</a>'; else $url=$url.'«Назад'; $url=$url.'</td><td class="pages" style="width: 30%">'; $url=$url.$this->page.'/'.$this->k_page; $url=$url.'</td><td class="pages" style="width: 35%; border-radius: 0px 6px 6px 0px">'; if ($this->page < $this->k_page) $url=$url.'<a style="border: 0px; border-radius: 0px 6px 6px 0px" '.($this->js == true?'load="none" page="'.($this->page+1).'"': null).' href="'.htm($link).($this->page+1).'">Вперед»</a>'; else $url=$url.'Вперед»'; $url=$url.'</td></tr></table>'; } return $url; } }
Пример использования(mysqli):
$count =$db->query('select count(id) as count from user')->fetch_object(); $page->no_post = "Юзвыри ацуцтвуют"; $q = $db->query('select * from user order by id desc limit '.$page->start.', '.$page->limit); while($post = $q->fetch_object()){ echo 'Юзырь '.$post->nick; } echo $page->out('?page=');