栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

php分页类代码

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

php分页类代码

        php分页使用sql语句的limit实现。分页时每页会有不同的内容和固定的条数。在实际应用中后端会计算出总页数并输出展示到前端,前端通过请求相应的页数,后端处理后并返回相应页数的内容。

一、分页关键词

        当前页:每次要跳转到的页数

        分页大小:每页显示的内容条数

        总记录数:表中总共有的数据条数

        总页数:总记录条数/分页大小 (ceil向上取整数)

二、分页公式

        (page-1)*pagesize,pagesize

        ps :  (当前页-1)*分页大小,分页大小  假如用户表为user,sql语句:select * from user limit ($page-1)*$pagesize,$pagesize,比如每页取10条,

        第1页:select * from user limit 0,10;          (1-1)*10,10

        第2页:select * from user limit 10,10 ;       (2-1)*10,10

        第3页:select * from user limit 30,10 ;       (3-1)*10,10

        第4页:select * from user limit 40,10 ;       (4-1)*10,10

        .....

三、分页类代码

 dbh = $dbh;
            $this -> sql = $sql;
            $this -> url = $url;
            $this -> pagesize = $pagesize;
            $this -> page = intval($page);
    		if(empty($this->page)){
    			$this->page=1;
    		}
    		
        }
	
	//分页数据sql
	public function pages(){
		
		if(empty($this -> pagesize)){
			$this -> pagesize = 6;
		}
		
		$sql1 = $this->sql.' LIMIT '.($this->page-1)*$this->pagesize.','.$this->pagesize;
		$res = $this -> dbh -> query($sql1);
		return $res -> fetchAll();
	
	}
        
        //分页样式输出
	public function page_nums (){

            $sql = $this -> sql;
            $res = $this -> dbh -> query($sql);
            $res1 = $res -> fetchAll();
            $allnum = count($res1);//总条数
            $allpage = ceil($allnum/$this->pagesize);//总页数
		if($allpage<2&&$allpage>0){

		}else{
			$p='';
			$p.= '';
			
			if($this->page>1){
				$nurl1 = explode('.',$this->url);
				$p.='
  • page-1).'.'.$nurl1[1].'" aria-label="Previous">«
  • '; } if($this->page<=($allpage)&&$this->page<6){                 if($allpage>=10){                     $allpages=10;                 }else{                     $allpages=$allpage;                 }                 for($i=1;$i<=$allpages;$i++){                     $nurl = explode('.',$this->url);                     $nurls = $nurl[0].$i.'.'.$nurl[1];                     if($i==$this->page){                         $p.= "{$i}";                     }else{                         $p.= "
  • {$i}
  • ";                     }                 }             }else if($allpage>5&&$this->page<=($allpage)&&$this->page<=$allpage-5){                 $offset_u = ($this->page-5);                 $offset_d = ($this->page+5);                 //偏移上5个                 for($i=$offset_u;$i<$this->page;$i++){                     $nurl = explode('.',$this->url);                     $nurls = $nurl[0].$i.'.'.$nurl[1];                     if($i==$this->page){                         $p.= "{$i}";                     }else{                         $p.= "
  • {$i}
  • ";                     }                 }                 //偏移下5个                 for($i=$this->page;$i<=$offset_d;$i++){                     $nurl = explode('.',$this->url);                     $nurls = $nurl[0].$i.'.'.$nurl[1];                     if($i==$this->page){                         $p.= "{$i}";                     }else{                         $p.= "
  • {$i}
  • ";                     }                 }             }else{                 $offset_u = ($this->page-5);                 $offset_d = ($allpage);                 //偏移上5个                 if($allpage>5){                     for($i=$offset_u;$i<$this->page;$i++){                         $nurl = explode('.',$this->url);                         $nurls = $nurl[0].$i.'.'.$nurl[1];                         if($i==$this->page){                             $p.= "{$i}";                         }else{                             $p.= "
  • {$i}
  • ";                         }                     }                 }                 //偏移下5个                 for($i=$this->page;$i<=$offset_d;$i++){                     $nurl = explode('.',$this->url);                     $nurls = $nurl[0].$i.'.'.$nurl[1];                     if($i==$this->page){                         $p.= "{$i}";                     }else{                         $p.= "
  • {$i}
  • ";                     }                 }             } if($this->page<($allpage)){ $nurl1 = explode('.',$this->url); $p.='
  • page+1).'.'.$nurl1[1].'" aria-label="Next">»
  • '; }             if($allpage>1){                 $p.='
  • 共'.$allpage.'页
  • ';             } $p.= ''; return $p; }     } }

        调用:

    $res = new page($dbh,$sql,$url,$pagesize=20,$page);
    $res1['page']= $res -> page_nums();
    $res1['res'] = $res -> pages();
    return $res1;

        效果图:

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/2453.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号