首页 > php mysql > php分页类,只用传入总页数

php分页类,只用传入总页数

2010年4月22日
class Page{
public $total;//总页数
public $url;//url形式
public $spannum;//页码前后跨度如12345则第3页的前后跨度为2
public $topage;//显示效果开始页
public $startpage;//出现显示效果后开始页
public $endpage;//出现显示效果后结束页,实际上就是当前页加减跨度值
public $p;//当前页
public $pagenum;//需要显示的页数
public function __construct($total,$url=”?p=”,$spannum=4){
$this->total=$total;
$this->url=$url;
$this->spannum=$spannum;
$this->pagenum=2*$spannum+1;//需要显示的页数为2倍的跨度加一
$this->topage=$spannum+1;//起效页为跨度页加一
$this->init();
}
public function init(){
$this->p=isset($_GET[‘p’])?intval($_GET[‘p’]):1;//获取当前页
if($this->p>$this->total){
$this->p=$this->total;//屏蔽人为的输入超过页数的值
}
if($this->p<1){
$this->p=1;//屏蔽人为的输入小于最小页数的值
}
$this->startpage=$this->p-$this->spannum;
$this->endpage=$this->p+$this->spannum;
if($this->endpage>=$this->total){//判断超过最大页数
$this->startpage=$this->total-$this->pagenum+1;
$this->endpage=$this->total;
}
if($this->p<$this->topage){//当前页小于效果页
$this->startpage=1;
$this->endpage=$this->pagenum;
}
if($this->total<$this->pagenum){//总页数小于显示页数
$this->endpage=$this->total;
}
}
public function display(){
if($this->p>1){
echo ‘<a href=”‘,$this->url,’1″>首页</a>’;
echo ‘<a href=”‘,$this->url,$this->p-1,'”>上一页</a>&nbsp;’;
}
for($i=$this->startpage;$i<=$this->endpage;$i++){
if($i==$this->p){
echo $i,’&nbsp;’;
}else{
echo ‘<a href=”‘,$this->url,$i,'”>’,$i,'</a>&nbsp;’;
}
}
if($this->p<$this->total){
echo ‘<a href=”‘,$this->url,$this->p+1,'”>下一页</a>&nbsp;’;
echo ‘<a href=”‘,$this->url,$this->total,'”>最后一页</a>’;
}
}
}
?>

<?php/*分页类使用方法*$total=50;//总页数*$page= new Page($total);*$page->display();*Time:2009/3/25,Author:FIFSKY,Website:www.fifsky.com*/class Page{ public $total;//总页数 public $url;//url形式 public $spannum;//页码前后跨度如12345则第3页的前后跨度为2 public $topage;//显示效果开始页 public $startpage;//出现显示效果后开始页 public $endpage;//出现显示效果后结束页,实际上就是当前页加减跨度值 public $p;//当前页 public $pagenum;//需要显示的页数 public function __construct($total,$url=”?p=”,$spannum=4){ $this->total=$total; $this->url=$url; $this->spannum=$spannum; $this->pagenum=2*$spannum+1;//需要显示的页数为2倍的跨度加一 $this->topage=$spannum+1;//起效页为跨度页加一 $this->init(); } public function init(){ $this->p=isset($_GET[‘p’])?intval($_GET[‘p’]):1;//获取当前页 if($this->p>$this->total){ $this->p=$this->total;//屏蔽人为的输入超过页数的值 } if($this->p<1){ $this->p=1;//屏蔽人为的输入小于最小页数的值 } $this->startpage=$this->p-$this->spannum; $this->endpage=$this->p+$this->spannum; if($this->endpage>=$this->total){//判断超过最大页数 $this->startpage=$this->total-$this->pagenum+1; $this->endpage=$this->total; } if($this->p<$this->topage){//当前页小于效果页 $this->startpage=1; $this->endpage=$this->pagenum; } if($this->total<$this->pagenum){//总页数小于显示页数 $this->endpage=$this->total; } }
public function display(){ if($this->p>1){ echo ‘<a href=”‘,$this->url,’1″>首页</a>’; echo ‘<a href=”‘,$this->url,$this->p-1,'”>上一页</a>&nbsp;’; } for($i=$this->startpage;$i<=$this->endpage;$i++){ if($i==$this->p){ echo $i,’&nbsp;’; }else{ echo ‘<a href=”‘,$this->url,$i,'”>’,$i,'</a>&nbsp;’; } } if($this->p<$this->total){ echo ‘<a href=”‘,$this->url,$this->p+1,'”>下一页</a>&nbsp;’; echo ‘<a href=”‘,$this->url,$this->total,'”>最后一页</a>’; } }}?>

PHP培训有一段时间了,消失也有一段时间了,特地封装一个分页类上传上来,自己写的,高手指点,新手学习,莫笑话!呵呵
配合CSS样式会好看点
[code]DIV.page {
PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 3px; PADDING-TOP: 3px; TEXT-ALIGN: center
}
DIV.page A {
BORDER-RIGHT: #dedfde 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: 50% bottom; BORDER-TOP: #dedfde 1px solid; PADDING-LEFT: 6px; PADDING-BOTTOM: 2px; BORDER-LEFT: #dedfde 1px solid; COLOR: #0061de; MARGIN-RIGHT: 3px; PADDING-TOP: 2px; BORDER-BOTTOM: #dedfde 1px solid;TEXT-DECORATION: none
}
DIV.page A:hover {
BORDER-RIGHT: #000 1px solid; BORDER-TOP: #000 1px solid; BACKGROUND-IMAGE: none; BORDER-LEFT: #000 1px solid; COLOR: #fff; BORDER-BOTTOM: #000 1px solid; BACKGROUND-COLOR: #0061de;TEXT-DECORATION: none
}
DIV.page A:active {
BORDER-RIGHT: #000 1px solid; BORDER-TOP: #000 1px solid; BACKGROUND-IMAGE: none; BORDER-LEFT: #000 1px solid; COLOR: #fff; BORDER-BOTTOM: #000 1px solid; BACKGROUND-COLOR: #0061de
}[/code]

bbs.phpchina.com/thread-110346-1-8.html

php mysql 浏览1,062 次

本文的评论功能被关闭了.