好用的PHP分页类

  1. <?php
  2. class Page {
  3. private $total;      //总记录
  4. private $pagesize;    //每页显示多少条
  5. private $limit;          //limit
  6. private $page;           //当前页码
  7. private $pagenum;      //总页码
  8. private $url;           //地址
  9. private $bothnum;      //两边保持数字分页的量
  10. //构造方法初始化
  11. public function __construct($_total, $_pagesize) {
  12. $this->total = $_total ? $_total : 1;
  13. $this->pagesize = $_pagesize;
  14. $this->pagenum = ceil($this->total / $this->pagesize);
  15. $this->page = $this->setPage();
  16. $this->limit = "LIMIT ".($this->page-1)*$this->pagesize.",$this->pagesize";
  17. $this->url = $this->setUrl();
  18. $this->bothnum = 2;
  19. }
  20. //拦截器
  21. private function __get($_key) {
  22. return $this->$_key;
  23. }
  24. //获取当前页码
  25. private function setPage() {
  26. if (!empty($_GET[‘page‘])) {
  27. if ($_GET[‘page‘] > 0) {
  28. if ($_GET[‘page‘] > $this->pagenum) {
  29. return $this->pagenum;
  30. } else {
  31. return $_GET[‘page‘];
  32. }
  33. } else {
  34. return 1;
  35. }
  36. } else {
  37. return 1;
  38. }
  39. }
  40. //获取地址
  41. private function setUrl() {
  42. $_url = $_SERVER["REQUEST_URI"];
  43. $_par = parse_url($_url);
  44. if (isset($_par[‘query‘])) {
  45. parse_str($_par[‘query‘],$_query);
  46. unset($_query[‘page‘]);
  47. $_url = $_par[‘path‘].‘?‘.http_build_query($_query);
  48. }
  49. return $_url;
  50. }     //数字目录
  51. private function pageList() {
  52. for ($i=$this->bothnum;$i>=1;$i--) {
  53. $_page = $this->page-$i;
  54. if ($_page < 1) continue;
  55. $_pagelist .= ‘ <a href="‘.$this->url.‘&page=‘.$_page.‘">‘.$_page.‘</a> ‘;
  56. }
  57. $_pagelist .= ‘ <span class="me">‘.$this->page.‘</span> ‘;
  58. for ($i=1;$i<=$this->bothnum;$i++) {
  59. $_page = $this->page+$i;
  60. if ($_page > $this->pagenum) break;
  61. $_pagelist .= ‘ <a href="‘.$this->url.‘&page=‘.$_page.‘">‘.$_page.‘</a> ‘;
  62. }
  63. return $_pagelist;
  64. }
  65. //首页
  66. private function first() {
  67. if ($this->page > $this->bothnum+1) {
  68. return ‘ <a href="‘.$this->url.‘">1</a> ...‘;
  69. }
  70. }
  71. //上一页
  72. private function prev() {
  73. if ($this->page == 1) {
  74. return ‘<span class="disabled">上一页</span>‘;
  75. }
  76. return ‘ <a href="‘.$this->url.‘&page=‘.($this->page-1).‘">上一页</a> ‘;
  77. }
  78. //下一页
  79. private function next() {
  80. if ($this->page == $this->pagenum) {
  81. return ‘<span class="disabled">下一页</span>‘;
  82. }
  83. return ‘ <a href="‘.$this->url.‘&page=‘.($this->page+1).‘">下一页</a> ‘;
  84. }
  85. //尾页
  86. private function last() {
  87. if ($this->pagenum - $this->page > $this->bothnum) {
  88. return ‘ ...<a href="‘.$this->url.‘&page=‘.$this->pagenum.‘">‘.$this->pagenum.‘</a> ‘;
  89. }
  90. }
  91. //分页信息
  92. public function showpage() {
  93. $_page .= $this->first();
  94. $_page .= $this->pageList();
  95. $_page .= $this->last();
  96. $_page .= $this->prev();
  97. $_page .= $this->next();
  98. return $_page;
  99. }
  100. }
  101. ?>

使用分页

  1. <?php
  2. $_page = new Page($_total,$_pagesize); //其中 $_total 是数据集的总条数,$_pagesize 是每页显示的数量.
  3. ?>
时间: 2024-11-09 13:37:02

好用的PHP分页类的相关文章

PHP非常好用的分页类

分页类: <?php /* * ********************************************* * @类名: page * @参数: $myde_total - 总记录数 * $myde_size - 一页显示的记录数 * $myde_page - 当前页 * $myde_url - 获取当前的url * @功能: 分页实现 * @作者: 宋海阁 */ class Page { private $myde_total; //总记录数 private $myde_siz

php分页类

<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = arr

PHP简单分页类

<?php /* * ********************************************* * @类名: page * @参数: $myde_total - 总记录数 * $myde_size - 一页显示的记录数 * $myde_page - 当前页 * $myde_url - 获取当前的url * @功能: 分页实现 * @作者: 宋海阁 */ class page { private $myde_total; //总记录数 private $myde_size; //

thinkphp简洁、美观、靠谱的分页类

废话不多说先上图预览下:即本博客的分页: 这个分页类是在thinkphp框架内置的分页类的基础上修改而来: 原分页类的一些设计,在实际运用中感觉不是很方便: 1:只有一页内容时不显示分页: 2:原分页类在当前页是第一页和最后一页的时候,不显示第一页和最后一页的按钮: 3:分页数比较少时不显示首页和末页按钮: 4:包裹分页内容的父级div没有class: 针对以上问题逐一进行了修改成如下: 1:如果没有数据不显示分页,如果有一页及以上内容即显示分页: 2:默认就显示第一页和最后一页按钮,但是在当前

ASP经典分页类

================================================================= 'XDOWNPAGE ASP版本 '版本 1.00 'Code by zykj2000 'Email: [email protected] 'BBS: http://bbs.513soft.net '本程序可以免费使用.修改,希望我的程序能为您的工作带来方便 '但请保留以上请息 ' '程序特点 '本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义

thinkphp自带分页类

thinkphp自带分页使用案例: $Data = M('Data'); // 实例化Data数据对象  date 是你的表名     import('ORG.Util.Page');// 导入分页类     $count = $Data->where($map)->count();// 查询满足要求的总记录数 $map表示查询条件     $Page = new Page($count);// 实例化分页类 传入总记录数     $show = $Page->show();// 分页显

php中的实用分页类

<table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>地区代号</td> <td>地区名称</td> <td>父级代号</td> </tr> <?php include("LZY.class.php");

php 分页类

<?php/* * ********************************************* * @类名: page * @参数: $myde_total - 总记录数 * $myde_size - 一页显示的记录数 * $myde_page - 当前页 * $myde_url - 获取当前的url * @功能: 分页实现 * @作者: 宋海阁 */ class page{ private $myde_total; //总记录数 private $myde_size; //一页

分页类

<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = arr

nodejs分页类

改编自http://my.oschina.net/wanglihui/blog/269907,感谢原作者,我在基础上进行了二次封装 分页类,我放在 plugin/Paginate.js /** * 分页插件类(缺少每页的显示数,listrows明天写) * @param page {Number} 当前页 * @param pagesize {Number} 每页记录数 * @param total {Number} 总记录数 * @constructor */ function Paginat