一个还算是比较简单实用美观大方的分页类
首先是分页类 page.php<?php
class Page{
private $cur;
private $showPages = 2;
private $pageIndex;
private $pageEnd;
private $total;
private $size;
public function __construct($cur,$total,$size){
$this->cur=$cur;
$this->total=$total;
$this->size = $size;
$this->pageCount = ceil($total/$size);
$this->setIndexEnd();
}
private function setIndexEnd(){
$this->pageIndex = $this->cur-$this->showPages;
$this->pageEnd = $this->cur+$this->showPages;
//0 pageend +1
//-1 pageend +2
if($this->pageIndex<=0){
$this->pageEnd = $this->pageEnd+(1-$this->pageIndex);
$this->pageIndex=1;
}
//14 13 -1
//15 12 -2
if($this->pageCount>($this->showPages*2+1)){
if($this->pageEnd>$this->pageCount){
$this->pageIndex = $this->pageIndex-($this->pageEnd-$this->pageCount);
$this->pageEnd = $this->pageCount;
}
}else{
if($this->pageEnd>$this->pageCount){
$this->pageEnd = $this->pageCount;
}
}
}
public function showPage(){
if($this->total>$this->size){
$str ="
$str.=$this->pageHome();
$str.=$this->prePage();
$str.=$this->midPage();
$str.=$this->nextPage();
$str.=$this->pageLast();
$str.=$this->countTotal();
$str.='
}else{
$str=null;
}
return $str;
}
private function pageHome(){
if($this->cur==1){
$str = '
首页
';}else{
$str = '首页';
}
return $str;
}
private function prePage(){
if($this->cur==1){
$str = '
上一页
';}else{
$str = 'cur-1).'>上一页';
}
return $str;
}
private function midPage(){
$str = '';
if($this->pageIndex!=1){
$str.='
...
';}
for($i=$this->pageIndex;$i<=$this->pageEnd;$i++){
if($i==$this->cur){
$str.="$i";
}else{
$str.="$i";
}
}
if($this->pageEnd!=$this->pageCount){
$str.='
...
';}
return $str;
}
private function nextPage(){
if($this->cur==$this->pageCount){
$str = '
下一页
';}else{
$str = 'cur+1).'>下一页';
}
return $str;
}
private function pageLast(){
if($this->cur==$this->pageCount){
$str = '
尾页
';}else{
$str = 'pageCount.'>尾页';
}
return $str;
}
//统计
private function countTotal(){
return '
共'.$this->pageCount.'页'.$this->total.'条数据
';}
}
分页类的使用以及展示<?php
require_once 'page.php';
try{
$db = new PDO('mysql:host=127.0.0.1;dbname=lampol;port=3306;charset=utf8','root','123456');
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo 'connect Mysql Error:'.$e->getMessage();
}
$cur = $_GET['page'];
$size =2;
$sql = 'SELECT user_name,password FROM `user`';
$stmt = $db->prepare($sql);
$stmt->execute();
$total=$stmt->rowCount();//总的条数
// 0 8
// 8 ,8
//16, 8
$sql.='LIMIT '. ($cur-1)*$size.','.$size;
$stmt = $db->prepare($sql);
$stmt->execute();
$res = $stmt->fetchAll();
?>
html>
分页类p{margin:0}
#page{height:40px;padding:20px 0px;}
#page a{display:block;float:left;margin-right:10px;padding:2px 12px;height:24px;border:1px #cccccc solid;background:#fff;text-decoration:none;color:#808080;font-size:12px;line-height:24px;}
#page a:hover{color:#077ee3; border:1px #077ee3 solid;}
#page a.cur{border:none;background:#43badb;color:#fff;}
#page p{float:left;padding:2px 12px;font-size:12px;height:24px;line-height:24px;color:#bbb;border:1px #ccc solid;background:#fcfcfc;margin-right:8px;}
#page p.pageRemark{border-style:none;background:none;margin-right:0px;padding:4px 0px;color:#666;}
#page p.pageRemark b{color:red;}
#page p.pageEllipsis{border-style:none;background:none;padding:4px 0px;color:#808080;}
//开始调用分页类
$page = new Page($cur,$total,$size);
echo $page->showPage();
?>
下面是效果图