重新写了一个分页类
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;
    }
} ;