欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php分页类实例 php与mysql简单分页类代码

程序员文章站 2022-06-11 14:04:24
...
  1. class PageModel {
  2. /**
  3. * 获取分页数组
  4. * @param unknown $page 当前页面数
  5. * @param unknown $goodsCount 商品总数
  6. * @param unknown $pageLength 每个页面展示页面数
  7. */
  8. public static function getPageArr($page, $goodsCount, $pageCountLength, $pageLength) {
  9. //页面总数
  10. $allPageCount = ceil($goodsCount / $pageLength);
  11. //如果页面总是比长度短,设定页面长度为页面总数
  12. if ($allPageCount $allPageCount = ceil($goodsCount / $pageLength);
  13. }
  14. //总页面数一页展示完
  15. if ($allPageCount for ($i = 0; $i $arr[] = array('page' => $i + 1);
  16. }
  17. return $arr;
  18. }
  19. //前后的长度
  20. $halfLength = floor($pageCountLength / 2);
  21. //因为太小,所以放原来位置,左边
  22. if ($page $arr = array();
  23. for ($i = 0; $i $arr[] = array('page' => $i + 1);
  24. }
  25. return $arr;
  26. }
  27. //太大,只取到边缘,超出也只取到边缘
  28. if ($page > $allPageCount - floor($pageCountLength / 2)) {
  29. for ($i = -$pageCountLength; $i $arr[] = array('page' => $allPageCount + $i + 1);
  30. }
  31. return $arr;
  32. }
  33. //中间的数,把中间的取出来
  34. for ($i = -$halfLength; $i $arr[] = array('page' => $page + $i);
  35. }
  36. return $arr;
  37. }
  38. }
复制代码

二、php分页类代码

代码:

  1. class Helper_Page{

  2. /** 总信息数 */

  3. var $infoCount;
  4. /** 总页数 */
  5. var $pageCount;
  6. /** 每页显示条数 */
  7. var $items;
  8. /** 当前页码 */
  9. var $pageNo;
  10. /** 查询的起始位置 */
  11. var $startPos;
  12. /** 下一页 */
  13. var $nextPageNo;
  14. /** 上一页 */
  15. var $prevPageNo;
  16. function Helper_Page($infoCount, $items, $pageNo)

  17. {
  18. $this->infoCount = $infoCount;
  19. $this->items = $items;
  20. $this->pageNo = $pageNo;
  21. $this->pageCount = $this->GetPageCount();
  22. $this->AdjustPageNo();
  23. $this->startPos = $this->GetStartPos();
  24. }
  25. function AdjustPageNo()
  26. {
  27. if($this->pageNo == '' || $this->pageNo $this->pageNo = 1;
  28. if ($this->pageNo > $this->pageCount)
  29. $this->pageNo = $this->pageCount;
  30. }
  31. /**
  32. * 下一页
  33. */
  34. function GoToNextPage()
  35. {
  36. $nextPageNo = $this->pageNo + 1;
  37. if ($nextPageNo > $this->pageCount)
  38. {
  39. $this->nextPageNo = $this->pageCount;
  40. return false;
  41. }
  42. $this->nextPageNo = $nextPageNo;
  43. return true;
  44. }
  45. /**
  46. * 上一页
  47. */
  48. function GotoPrevPage()
  49. {
  50. $prevPageNo = $this->pageNo - 1;
  51. if ($prevPageNo {
  52. $this->prevPageNo = 1;
  53. return false;
  54. }
  55. $this->prevPageNo = $prevPageNo;
  56. return true;
  57. }
  58. function GetPageCount()
  59. {
  60. return ceil($this->infoCount / $this->items);
  61. }
  62. function GetStartPos()
  63. {
  64. return ($this->pageNo - 1) * $this->items;
  65. }
  66. }
复制代码