深圳市金黑网络技术有限公司始终坚持以用户需求为导向,提供安全、稳定、高效的产品和服务!
签到 · 搜索导航 · 服务热线 · 微信/手机:17817817816

深圳网站建设

查看: 318|回复: 0

php开发教程分页案例附代码

[复制链接]

UID
1
贡献
844
金币
1540
主题
520
在线时间
333 小时
注册时间
2022-1-15
最后登录
2024-11-12
QQ
发表于 2022-12-9 15:08:56 | 318 | 0 | 显示全部楼层 |阅读模式
php开发教程分页案例附代码

  1. <?php
  2. //自动加载类
  3. spl_autoload_register(function($class_name){
  4.         require "./{$class_name}.class.php";
  5. });
  6. //获取单例
  7. $param=array(
  8.         'user'                =>        'root',
  9.         'pwd'                =>        'root',
  10.         'dbname'        =>        'data'
  11. );
  12. //获取单例
  13. $db=MySQLDB::getInstance($param);
  14. ?>
  15. <!doctype html>
  16. <html>
  17. <head>
  18. <meta charset="utf-8">
  19. <title>无标题文档</title>
  20. <style type="text/css">
  21.         table{
  22.                 width:780px;
  23.                 border:solid #000 1px;
  24.         }
  25.         td,th{
  26.                 border:solid #000 1px;
  27.         }
  28. </style>
  29. </head>

  30. <body>
  31. <?php
  32. $pagesize=10;                //页面大小
  33. //第一步:获取总记录数
  34. $rowcount=$db->fetchColumn('select count(*) from products');
  35. //第二步:求出总页数
  36. $pagecount=ceil($rowcount/$pagesize);
  37. //第四步:通过当前页面,求出起始位置
  38. //$pageno=isset($_GET['pageno'])?$_GET['pageno']:1;
  39. $pageno=$_GET['pageno']??1;
  40. $pageno=$pageno<1?1:$pageno;
  41. $pageno=$pageno>$pagecount?$pagecount:$pageno;
  42. $startno=($pageno-1)*$pagesize;
  43. //第五步:获取当前页面数据,并遍历显示
  44. $sql="select * from products limit $startno,$pagesize";
  45. $rs=$db->fetchAll($sql);
  46. ?>
  47. <table>
  48.         <tr>
  49.                 <th>编号</th>
  50.                 <th>商品名称</th>
  51.                 <th>规格</th>
  52.                 <th>价格</th>
  53.         </tr>
  54.         <?php foreach($rs as $row):?>
  55.         <tr>
  56.                 <td><?=$row['proID']?></td>
  57.                 <td><?=$row['proname']?></td>
  58.                 <td><?=$row['proguige']?></td>
  59.                 <td><?=$row['proprice']?></td>
  60.         </tr>
  61.         <?php endforeach;?>
  62. </table>
  63. <!--第三步:循环显示页码-->
  64. 一共有<?=$rowcount?>条记录,每页放<?=$pagesize?>条记录,当前是<?=$pageno?>页 <br />
  65. 【<a href="?pageno=1">首页</a>】
  66. 【<a href="?pageno=<?=$pageno-1?>">上一页</a>】
  67. <?php for($i=1; $i<=$pagecount; $i++):?>
  68.         <a href="?pageno=<?=$i?>"><?=$i?></a>
  69. <?php endfor;?>
  70. 【<a href="?pageno=<?=$pageno+1?>">下一页</a>】
  71. 【<a href="?pageno=<?=$pagecount?>">末页</a>】
  72. </body>
  73. </html>
复制代码
分页优化
在上面的分页代码中,虽然SQL语句比较经典,但是每次都要获取不需要的数据,浪费资源

  1. $sql="select * from products limit $startno,$pagesize";
复制代码
优化

  1. $sql="select * from products where proid>=(select proid from products limit $startno,1) limit $pagesize";
复制代码

楼主热帖

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

快速回复 返回顶部 返回列表