当前位置:Gxlcms > PHP教程 > PHP函数实现分页效果,php文本分页和数字分页

PHP函数实现分页效果,php文本分页和数字分页

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

  1. // 分页
  2. /**
  3. * $pageType 分页类型 1是数字分页 2是文本分页
  4. * 可以将$pageTotal,$page,$total等数据作为参数传递,或者在paging作为全局变量(推荐)
  5. */
  6. function paging($pageType)
  7. {
  8. global $pageTotal,$page,$total;
  9. if($pageType == 1)
  10. {
  11. echo '';
  12. echo'
      ';
    • for($i=0; $i < $pageTotal; $i++)
    • {
    • if($page == ($i+1))
    • {
    • echo '
    • '.($i+1).'
    • ';
    • }
    • else
    • {
    • echo '
    • '.($i+1).'
    • ';
    • }
    • }
    • echo'
    ';
  13. echo'';
  14. }
  15. else if($pageType == 2)
  16. {
  17. echo '';
  18. echo '
      ';
    • echo '
    • '.$page.'/'.$pageTotal.'页 |
    • ';
    • echo '
    • 共有'.$total .'个会员 |
    • ';
    • // 第一页
    • if($page == 1)
    • {
    • echo '
    • 首页 |
    • ';
    • echo '
    • 上一页 |
    • ';
    • }
    • else
    • {
    • // $_SERVER["SCRIPT_NAME"]获取当前的脚本名字,方便移植
    • // 也可以自定义常量,常量值和脚本文件名一致
    • echo '
    • 首页 |
    • ';
    • echo '
    • 上一页 |
    • ';
    • }
    • // 最后一页
    • if($page == $pageTotal)
    • {
    • echo '
    • 下一页 |
    • ';
    • echo '
    • 尾页 |
    • ';
    • }
    • else
    • {
    • echo '
    • 下一页 |
    • ';
    • echo '
    • 尾页 |
    • ';
    • }
    • echo '
    ';
  19. echo '';
  20. }
  21. }

参数解释: $pageTotal是总页数,$page是当前页,$total是从数据库中获取的数据总数;

2、将参数全部封装

  1. // 分页参数分装
  2. /**
  3. * $sql 可以 获取数据总数的一个sql语句
  4. * $size 每一页显示条数
  5. */
  6. function pageParam($sql,$size)
  7. {
  8. // 将所有涉及的参数设置全局变量
  9. // $pagestart 某一页从哪里开始
  10. // $total 总记录数 $page 某一页 $pageTotal 总页数
  11. global $pagestart,$pagesize,$total,$page,$pageTotal;
  12. $pagesize = $size;
  13. // 获取数据总数
  14. $total = mysql_num_rows(queryDB($sql));
  15. // 错误处理,先判断是否存在
  16. if(isset($_GET['page']))
  17. {
  18. // 具体某一页
  19. $page = $_GET['page'];
  20. // 判断是否为空(0是空)/小于0/是否是数字
  21. if(empty($page) || $page < 0 || !is_numeric($page))
  22. {
  23. $page = 1;
  24. }
  25. else
  26. {
  27. $page = intval($page); //取整,防止小数出现
  28. }
  29. }
  30. else
  31. {
  32. // 初始化显示第1页
  33. $page = 1;
  34. }
  35. // 数据库清零
  36. if($total == 0)
  37. {
  38. // 设置为1
  39. $pageTotal = 1;
  40. }
  41. else
  42. {
  43. // 分页的总页数(进一取整处理)
  44. $pageTotal = ceil($total / $pagesize);
  45. }
  46. // 页数大于总页码$total
  47. if($page > $pageTotal)
  48. {
  49. $page = $pageTotal;
  50. }
  51. // 当页从某一条记录开始
  52. $pagestart = ($page - 1) * $pagesize;
  53. }

参数解释: $pagestart是当页从某一条记录开始,$pagesize是每页显示的记录数

3、在使用中,先调用pageParam,再调用paging

  1. /**
  2. * 第一个 可以 获取数据总数的一个sql语句
  3. * 第二个 每一页显示条数
  4. */
  5. pageParam("select userid from user",2);
  6. // 分页类型 1是数字分页 2是文本分页
  7. paging(2);
  8. ?>

4、调用位置根据具体情况选择,文本分页:

  1. // 分页类型 1是数字分页 2是文本分页
  2. paging(1);
  3. ?>

人气教程排行