php写分页类

来源:互联网 发布:淘宝领的优惠券在哪里 编辑:程序博客网 时间:2024/06/11 10:35

写了个php分页类 功能还算可以 以后慢慢完善 里面有我的注释 分页公式需要熟记。

 



<?php    /*    分页是我们读取数据库显示内容必须要用到的所谓分页,也就是将数据库中的结果集人为的分为一段一段来显示需要参数当前第几页?  GET每页多少条? pageSize总记录数?   total公式 (当前页码 -1) * 每页几条 , 每页几条*/class Page {    private $total = null;private $page = null;private $pageNum = null;private $pageSize = null;public $limit = null;private $url;private $offset = 3;public function __construct ($_total,$_pageSize = 10) {    $this->total = $_total;$this->pageSize = $_pageSize;$this->pageNum = ceil($this->total / $this->pageSize);$this->page = $this->getPage();$this->url = $this->setUrl();$this->limit = ($this->page-1)*$this->pageSize .",".$this->pageSize;}private function getPage () {    $_page = (int)$_GET['page'];if(empty($_page) || $_page <= 0) return 1;if($_page > $this->pageNum) return $this->pageNum;return $_page;}public  function setUrl () {    $_url = $_SERVER['REQUEST_URI'];$_url = parse_url($_url);if(isset($_url['query'])) {    parse_str($_url['query'],$query);unset($query['page']);$_url = $_url['path'].'?'.http_build_query($query); }  else {                    $_url = $_url['path'];                }         return $_url;}//数字分页private function numPage () {for($i=$this->offset;$i>=1;$i--) {$_page = $this->page-$i;if ($_page < 1) continue;     $numPage .= '[<a href="'.$this->url.'&page='.($this->page-$i).'">'.($this->page-$i).'</a>]';}$numPage .= '[<a href="'.$this->url.'&page='.($this->page).'">'.($this->page).'</a>]';for($i=1;$i<=$this->offset;$i++) {$_page = $this->page +$i;if ($_page > $this->pageNum) break;    $numPage .= '[<a href="'.$this->url.'&page='.($this->page+$i).'">'.($this->page+$i).'</a>]';}return $numPage;}//首页private function  first () {   if($this->page > $this->offset+1) {       return '[<a href="'.$this->url.'&page=1">1</a>]...';   }}//上一页private function prev () {return '<a href="'.$this->url.'&page='.($this->page-1).'">上一页</a>';}//下一页private function next () {return '<a href="'.$this->url.'&page='.($this->page+1).'">下一页</a>';}//尾页private function last () {    if($this->pageNum - $this->page > $this->offset ) {return '...[<a href="'.$this->url.'&page='.$this->pageNum.'">'.$this->pageNum.'</a>]';}}public function showPage () {    $data = "";    $data .= $this->first();$data .= $this->numPage();$data .= $this->last();$data .= $this->prev();$data .= $this->next();return $data;}   }?>


 

 

分页样式

 

 

                                                    过往云烟 2010/06/28

原创粉丝点击