侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

PHP分页显示的方法分析【附PHP通用分页类】

php  /  管理员 发布于 7年前   159

本文实例讲述了PHP分页显示的方法。分享给大家供大家参考,具体如下:

= $pages){ $nextpage = $pages;}$start =($currentpage-1) * $pagesize;//起始位置$sql = "SELECT * from student limit $start,$pagesize";echo $sql;// $sql = "select * from student";$result = mysql_query($sql);?>  Document
学号 姓名 性别 年龄
上一页  下一页

注:当一个文件中有php和html两种时,php文件必须有结束标记

附:php通用分页类与用法:

Page.class.php文件:

getPages()); //生成一个页码数组(键为页码,值为链接) * echo $p->showPages(1);  //生成一个页码样式(可添加自定义样式) * *//*总条数,需要显示的页数,当前页,每页显示的条数,连接生成一个一维数组,键为页码 值为连接返回一个生成好样式的页码(并且可以根据自己需要添加样式)默认样式 共45条记录,每页显示10条,当前第1/4页 [首页] [上页] [1] [2] [3] .. [下页] [尾页]*/class Page{  protected $count;    //总条数  protected $showPages;  //需要显示的页数  protected $countPages; //总页数  protected $currPage;  //当前页  protected $subPages;  //每页显示条数  protected $href;    //连接  protected $page_arr=array();  //保存生成的页码 键页码 值为连接  /**   * __construct 构造函数(获取分页所需参数)   * @param int $count   总条数   * @param int $showPages 显示页数   * @param int $currPage 当前页数   * @param int $subPages 每页显示数量   * @param string $href  连接(不设置则获取当前URL)   */  public function __construct($count,$showPages,$currPage,$subPages,$href='https:/article/'){    $this->count=$count;    $this->showPages=$showPages;    $this->currPage=$currPage;    $this->subPages=$subPages;    //如果链接没有设置则获取当前连接    if(empty($href)){      $this->href=htmlentities($_SERVER['PHP_SELF']);    }else{      $this->href=$href;    }    $this->construct_Pages();  }  /**   * getPages 返回页码数组   * @return array 一维数组 键为页码 值为链接   */  public function getPages(){    return $this->page_arr;  }  /**   * showPages 返回生成好的页码   * @param int $style 样式   * @return string   生成好的页码   */  public function showPages($style=1){    $func='pageStyle'.$style;    return $this->$func();  }  /**   * pageStyle1 分页样式(可参照这个添加自定义样式 例如pageStyle2())   * 样式 共45条记录,每页显示10条,当前第1/4页 [首页] [上页] [1] [2] [3] .. [下页] [尾页]   * @return string   */  protected function pageStyle1(){    /* 构造普通模式的分页    共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [1] [2] [3] .. [下页] [尾页]    */    $pageStr='共'.$this->count.'条记录,每页显示'.$this->subPages.'条';    $pageStr.='当前第'.$this->currPage.'/'.$this->countPages.'页 ';    $_GET['page'] = 1;    $pageStr.='[href.'?'.http_build_query($_GET).'" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >首页] ';    //如果当前页不是第一页就显示上页    if($this->currPage>1){      $_GET['page'] = $this->currPage-1;      $pageStr.='[href.'?'.http_build_query($_GET).'" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >上页] ';    }    foreach ($this->page_arr as $k => $v) {      $_GET['page'] = $k;      $pageStr.='['.$k.'] ';    }    //如果当前页小于总页数就显示下一页    if($this->currPage<$this->countPages){      $_GET['page'] = $this->currPage+1;      $pageStr.='[href.'?'.http_build_query($_GET).'" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >下页] ';    }    $_GET['page'] = $this->countPages;    $pageStr.='[href.'?'.http_build_query($_GET).'" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >尾页] ';    return $pageStr;  }  /**   * construct_Pages 生成页码数组   * 键为页码,值为链接   * $this->page_arr=Array(   *         [1] => index.php?page=1   *         [2] => index.php?page=2   *         [3] => index.php?page=3   *         ......)   */  protected function construct_Pages(){    //计算总页数    $this->countPages=ceil($this->count/$this->subPages);    //根据当前页计算前后页数    $leftPage_num=floor($this->showPages/2);    $rightPage_num=$this->showPages-$leftPage_num;    //左边显示数为当前页减左边该显示的数 例如总显示7页 当前页是5 左边最小为5-3 右边为5+3    $left=$this->currPage-$leftPage_num;    $left=max($left,1); //左边最小不能小于1    $right=$left+$this->showPages-1; //左边加显示页数减1就是右边显示数    $right=min($right,$this->countPages); //右边最大不能大于总页数    $left=max($right-$this->showPages+1,1); //确定右边再计算左边,必须二次计算    for ($i=$left; $i <= $right; $i++) {      $_GET['page'] = $i;      $this->page_arr[$i]=$this->href.'?'.http_build_query($_GET);    }  }}?>

用法示例demo.php:

";print_r($p->getPages());//样式 共45条记录,每页显示10条,当前第1/4页 [首页] [上页] [1] [2] [3] .. [下页] [尾页]echo $p->showPages(1);

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP网络编程技巧总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • PHP封装的分页类与简单用法示例
  • php封装的page分页类完整实例
  • PHP实现的简单分页类及用法示例
  • 精美漂亮的php分页类代码
  • PHP通用分页类page.php[仿google分页]
  • 两款万能的php分页类
  • mysql+php分页类(已测)
  • 高效mongodb的php分页类(不使用skip)
  • PHP ajax 分页类代码
  • 仿dedecms下拉分页样式修改的thinkphp分页类实例
  • PHP基于面向对象封装的分页类示例


  • 上一条:
    PHP使用PDO抽象层获取查询结果的方法示例
    下一条:
    PHP实现用户登录的案例代码
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(95个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客