当前位置:Gxlcms > PHP教程 > php分页类实例php与mysql简单分页类代码

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

时间:2021-07-01 10:21:17 帮助过:18人阅读

  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 <= $pageCountLength) {
  13. $allPageCount = ceil($goodsCount / $pageLength);
  14. }
  15. //总页面数一页展示完
  16. if ($allPageCount <= $pageCountLength) {
  17. for ($i = 0; $i < $allPageCount; $i ++) {
  18. $arr[] = array('page' => $i + 1);
  19. }
  20. return $arr;
  21. }
  22. //前后的长度
  23. $halfLength = floor($pageCountLength / 2);
  24. //因为太小,所以放原来位置,左边
  25. if ($page <= $halfLength) {
  26. $arr = array();
  27. for ($i = 0; $i < $pageCountLength; $i ++) {
  28. $arr[] = array('page' => $i + 1);
  29. }
  30. return $arr;
  31. }
  32. //太大,只取到边缘,超出也只取到边缘
  33. if ($page > $allPageCount - floor($pageCountLength / 2)) {
  34. for ($i = -$pageCountLength; $i < 0; $i ++) {
  35. $arr[] = array('page' => $allPageCount + $i + 1);
  36. }
  37. return $arr;
  38. }
  39. //中间的数,把中间的取出来
  40. for ($i = -$halfLength; $i < $pageCountLength - $halfLength; $i ++) {
  41. $arr[] = array('page' => $page + $i);
  42. }
  43. return $arr;
  44. }
  45. }

二、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 < 1)
  28. $this->pageNo = 1;
  29. if ($this->pageNo > $this->pageCount)
  30. $this->pageNo = $this->pageCount;
  31. }
  32. /**
  33. * 下一页
  34. */
  35. function GoToNextPage()
  36. {
  37. $nextPageNo = $this->pageNo + 1;
  38. if ($nextPageNo > $this->pageCount)
  39. {
  40. $this->nextPageNo = $this->pageCount;
  41. return false;
  42. }
  43. $this->nextPageNo = $nextPageNo;
  44. return true;
  45. }
  46. /**
  47. * 上一页
  48. */
  49. function GotoPrevPage()
  50. {
  51. $prevPageNo = $this->pageNo - 1;
  52. if ($prevPageNo < 1)
  53. {
  54. $this->prevPageNo = 1;
  55. return false;
  56. }
  57. $this->prevPageNo = $prevPageNo;
  58. return true;
  59. }
  60. function GetPageCount()
  61. {
  62. return ceil($this->infoCount / $this->items);
  63. }
  64. function GetStartPos()
  65. {
  66. return ($this->pageNo - 1) * $this->items;
  67. }
  68. }

人气教程排行