自己写的简易分页类

/** 燕十八 公益PHP培训 

课堂地址:YY频道88354001 

学习社区:www.zixue.it **/

<?php
    class pageLib{
        private $totalNum;//总记录数
        private $pageRow;//每页的记录数
        private $pageNum;//一共有几页
        private $pageNow;//当前页
        private $sideNum=1;//当前页左右两边各显示多少个页码连接
		private $parm=PAGE_PARM;//分页的参数,比如page,依据你自己的定义
		private $limit;//limit语句
        public function __construct($totalNum,$pageRow,$parm=''){
             $this->totalNum=$totalNum;
             $this->pageRow=$pageRow;
			 if($parm!=''){
		         $this->parm=$parm;
             }
             $this->pageNow=isset($_GET[$this->parm])?$_GET[$this->parm]:1;
             $this->pageNum=ceil($totalNum/$this->pageRow); 
			 $startpage=$this->pageNow-1;
			 $this->limit='limit '.$startpage*$this->pageRow.','.$this->pageRow;     
        }
        public function __get($key){
            return $this->$key;
        }
        private function first(){
               if($this->pageNow>($this->sideNum+2)){
            return  "<a href='".$this->url().$this->parm."=1'> [1] ...</a>";
            }
			if($this->pageNow==1){
			return '';
			}
            
            return  "<a href='".$this->url().$this->parm."=1'> [1] </a>";
        }
        
        
        private function last(){
           if(($this->pageNow<$this->pageNum-$this->sideNum-1)){
            return  "<a href='".$this->url().$this->parm."=".$this->pageNum."'> ... [".$this->pageNum."] </a>";
          }
		  	if($this->pageNow==$this->pageNum){
			return '';
			}
             return  "<a href='".$this->url().$this->parm."=".$this->pageNum."'> [".$this->pageNum."] </a>";
        }
        
        private function pagelist(){
            $str='';
           //当前页左边
         
                    if($this->pageNow>(1+$this->sideNum+1)){//
                        for($i=1;$i<=$this->sideNum;$i++){
                            $str.="<a href='".$this->url().$this->parm."=".($this->pageNow-$i)."'> [".($this->pageNow-$i)."] </a>";
                        }     
                    }else{
                            for($i=$this->pageNow-1;$i>1;$i--){
                            $str.="<a href='".$this->url().$this->parm."=".$i."'> [".$i."] </a>";
                            }         
                    }
               
            
             $str.="<a οnclick='return false;' href='".$this->url().$this->parm."=".$this->pageNow."'><span class='page_now'> ".$this->pageNow." </span></a>";//当前页
            //当前右边
           
                    if(($this->pageNow<$this->pageNum-$this->sideNum-1)){
                        for($i=1;$i<=$this->sideNum;$i++){
                            
                            $str.="<a href='".$this->url().$this->parm."=".($this->pageNow+$i)."'> [".($this->pageNow+$i)."] </a>";
                        }
                    }else{

                            for($i=$this->pageNow+1;$i<$this->pageNum;$i++){
                                $str.="<a href='".$this->url().$this->parm."=".$i."'> [".$i."] </a>";
                            }

                    }
                
            
            return $str;
        }
        
        private function prev(){
            if($this->pageNow==1){//当前是第一页
                $prevnum=1;
            }else{
                $prevnum=$this->pageNow-1;//上一页的页码
            }
            $str.="<a href='".$this->url().$this->parm."=".$prevnum."'>".上一页." </a>";
            return $str;
        }
        
        private function next(){
            $str='';
            if($this->pageNow==$this->pageNum){//当前是最后一页
                $nextnum=$this->pageNow;//下一页的页码
            }else{
                $nextnum=$this->pageNow+1;
            }
            $str.="<a class='next' href='".$this->url().$this->parm."=".$nextnum."'>".下一页." </a>";
            return $str;
        }

        //生成url
		private function url(){
                    $p=$this->parm;//分页的参数
		   $url=parse_url($_SERVER['REQUEST_URI']);
		   if(isset($url['query'])){
		        parse_str($url['query'],$a); 
			    unset($a[$p]);
				if(!empty($a)){
                        return $url['path'].'?'.http_build_query($a).'&';
				}
				return $url['path'].'?';

		   }
		   return $url['path'].'?';
		}
        
        
        public function show(){
			$str.=$this->prev();
            $str.=$this->first();
            $str.=$this->pagelist();
            $str.=$this->last();        
            $str.=$this->next();
			$str.= "<span style='margin-right:10px;' class='f_l f6'>总计<strong>".$this->totalNum.'</strong>个产品</span>';
            return $str;
        }
    }
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值