重新写了一个分页类
class pagination extends mysql{
//分页类
var $totalrows = 0;//共有信息条数
var $messagenum;//每页信息条数
var $pageindex;//当前页数
var $pagesnum;//共显示多少页
var $pageprenum;//当前页之前显示多少页
var $expansion;//扩展
var $totalpages;//总页数
var $self;//当前文件
var $psumarr = array();
var $plistarr = array();
function pagination($mnum,$page,$pnum,$ppre,$num=0,$sql='',$exp=''){
//构造函数
$this->messagenum = $mnum;
$this->pageindex = $page;
$this->pagesnum = $pnum;
$this->pageprenum = $ppre;
$this->expansion = $exp;
$this->self = $_SERVER['PHP_SELF'];
if($num)
$this->totalrows = $num;
elseif($sql){
$query = $this->query($sql);
$rows = $this->fetch_array($query,MYSQL_NUM);
$this->totalrows = $rows[0];
}
}
function pageSum(){
$this->totalpages = ceil($this->totalrows/$this->messagenum);
$this->psumarr[] = $this->totalrows;
$this->psumarr[] = $this->pageindex."/".$this->totalpages;
}
function pagePre(){
return $this->pageindex - 1;
}
function pageNext(){
return $this->pageindex + 1;
}
function pageBefore(){
if($this->pageindex != 1){
$this->plistarr['first'] = array($this->self."?page=1".$this->expansion, "|‹");
$this->plistarr['pre'] = array($this->self."?page=".$this->pagePre().$this->expansion, "‹‹");
}
}
function pageList(){
if($this->pagesnum >= $this->totalpages){
$pgstart = 1;
$pgend = $this->totalpages;
}
elseif(($this->pageindex - $this->pageprenum -1 + $this->pagesnum) > $this->totalpages){
$pgstart = $this->totalpages - $this->pagesnum + 1;
$pgend = $this->totalpages;
}
else{
$pgstart = (($this->pageindex <= $this->pageprenum)?1:($this->pageindex-$this->pageprenum));
$pgend = (($pgstart == 1)?$this->pagesnum:($pgstart + $this->pagesnum - 1));
}
for($pg=$pgstart;$pg<=$pgend;$pg++){
$this->plistarr[$pg] = array($this->self."?page=".$pg.$this->expansion, $pg);
}
}
function pageAfter(){
if($this->pageindex != $this->totalpages){
$this->plistarr['next'] = array($this->self.'?page='.$this->pageNext().$this->expansion, "››");
$this->plistarr['last'] = array($this->self.'?page='.$this->totalpages.$this->expansion, "›|");
}
}
function htmlTag($tag,$attr='',$content=''){
if($content == '')
return '<'.$tag.(($attr=='')?'':' '.$attr).'>';
else
return '<'.$tag.(($attr=='')?'':' '.$attr).'>'.$content.'</'.$tag.'>';
}
function pageFormat(){
//----------------------------
$this->pageSum();
$this->pageBefore();
$this->pageList();
$this->pageAfter();
$pagestr = '';
foreach($this->psumarr as $value){
$pagestr .= $this->htmlTag('li','class="p_num"',$this->htmlTag('b','',$value));
}
foreach($this->plistarr as $key => $val){
if($key == $this->pageindex){
$pagestr .= $this->htmlTag('li','class="p_curpage"',$this->htmlTag('a','href="'.$val[0].'"',$val[1]));
}
else{
$pagestr .= $this->htmlTag('li','class="p_num"',$this->htmlTag('a','href="'.$val[0].'"',$val[1]));
}
}
return $pagestr;
}
} ;