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

PHP实现的简单分页类及用法示例

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

本文实例讲述了PHP实现的简单分页类及用法。分享给大家供大家参考,具体如下:

page; * * 获得总页数 * $page->pageCount; * * 获得总记录数 * $page->rowCount; * * 获得本页记录数 * $page->listSize; * * 获得记录集 * $page->list; * 记录集是一个2维数组,例:list[0]['id']访问第一条记录的id字段值. * * 获得页码列表 * $page->getPageList(); */class Page{  //基础数据  var $sql;  var $page;  var $pageSize;  var $pageStr;  //统计数据  var $pageCount; //页数  var $rowCount; //记录数  //结果数据  var $list = array(); //结果行数组  var $listSize ;  //构造函数  function Page($conn,$sql_in,$page_in,$pageSize_in,$pageStr_in)  {    $this->sql = $sql_in;    $this->page = intval($page_in);    $this->pageSize = $pageSize_in;    $this->pageStr = $pageStr_in;    //页码为空或小于1的处理    if(!$this->page||$this->page<1)    {      $this->page = 1;    }    //查询总记录数    $rowCountSql = preg_replace("/([\w\W]*?select)([\w\W]*?)(from[\w\W]*?)/i","$1 count(0) $3",$this->sql);    if(!$conn)      $rs = mysql_query($rowCountSql) or die("bnc.page: error on getting rowCount.");    else      $rs = mysql_query($rowCountSql,$conn) or die("bnc.page: error on getting rowCount.");    $rowCountRow = mysql_fetch_row($rs);    $this->rowCount=$rowCountRow[0];    //计算总页数    if($this->rowCount%$this->pageSize==0)      $this->pageCount = intval($this->rowCount/$this->pageSize);    else      $this->pageCount = intval($this->rowCount/$this->pageSize)+1;    //SQL偏移量    $offset = ($this->page-1)*$this->pageSize;    if(!$conn)      $rs = mysql_query($this->sql." limit $offset,".$this->pageSize) or die("bnc.page: error on listing.");    else      $rs = mysql_query($this->sql." limit $offset,".$this->pageSize,$conn) or die("bnc.page: error on listing.");    while($row=mysql_fetch_array($rs))    {      $this->list[]=$row;    }    $this->listSize = count($this->list);  }  /*   * getPageList方法生成一个较简单的页码列表   * 如果需要定制页码列表,可以修改这里的代码,或者使用总页数/总记录数等信息进行计算生成.   */  function getPageList()  {    $firstPage;    $previousPage;    $pageList;    $nextPage;    $lastPage;    $currentPage;    //如果页码>1则显示首页连接    if($this->page>1)    {      $firstPage = "pageStr."1\">首页";    }    //如果页码>1则显示上一页连接    if($this->page>1)    {      $previousPage = "pageStr.($this->page-1)."\">上一页";    }    //如果没到尾页则显示下一页连接    if($this->page<$this->pageCount)    {      $nextPage = "pageStr.($this->page+1)."\">下一页";    }    //如果没到尾页则显示尾页连接    if($this->page<$this->pageCount)    {      $lastPage = "pageStr.$this->pageCount."\">尾页";    }    //所有页码列表    for($counter=1;$counter<=$this->pageCount;$counter++)    {      if($this->page == $counter)      {        $currentPage = "".$counter."";      }      else      {        $currentPage = " "."pageStr.$counter."\">".$counter.""." ";      }      $pageList .= $currentPage;    }    return $firstPage." ".$previousPage." ".$pageList." ".$nextPage." ".$lastPage." ";  }}?>

用法示例:

list;foreach($rows as $row){  echo $row['UserName']."
";}echo $page->getPageList(); //输出分页列表?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP+ajax技巧与应用小结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

您可能感兴趣的文章:

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


  • 上一条:
    一波PHP中cURL库的常见用法代码示例
    下一条:
    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交流群

    侯体宗的博客