博主信息
博文 1
粉丝 0
评论 1
访问量 673
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php做分页案例,解决课程老师的bug
原创
673人浏览过

在以下课程中:
《直播实录:PHP魔鬼训练营[从零开始制作个人博客]》
——第5章 5-2[实例]如何使用PHP实现完美分页
https://www.php.cn/code/20774.html

老师讲的案例,存在bug:
?p=1时,page=1 有bug 点击下一页 page 会等于3 加了两次1

下面是我的解决方案:把下一页的$aa-1改为$bb-1

  1. $conn=mysqli_connect ('localhost','root','root','tjl'); //函数连接到数据库对象
  2. $aa=isset($_GET['p']) ? $_GET['p'] : 0;
  3. $bb=isset($_GET['p']) ? $_GET['p'] : 0;
  4. $offset=$aa* 3; //计算显示偏移量,3是每页显示的数量
  5. $sql = "SELECT id, name, course FROM student LIMIT {$offset},3 ";
  6. $select = mysqli_query($conn,$sql); // 执行查询语句返回结果集对象(数据表)
  7. $rows=mysqli_fetch_all($select,MYSQLI_ASSOC); // 一次性获取全部记录行数结果集
  8. foreach($rows as $key=>$value){ // 遍历二维数组,输出子数组的元素值
  9. echo 'id:'. $value['id'] . ',姓名:' . $value['name'] . ',课程:' . $value['course'] . '<br />';
  10. }
  11. $sql2 = "SELECT * FROM student"; // sql语句为查询全部数量的结果集(整张数据表)
  12. $select2 = mysqli_query($conn,$sql2); // 执行sql语句
  13. $page=mysqli_num_rows($select2)/3; //3.3,展示的总页数=数据的总条/行数 除以一页展的3条数
  14. $num=floor($page); //总页数3.3向下取整数为3
  15. if($aa<=0){ // 限制上一页bb不要退到-0
  16. $aa=$aa+1; } // 如果上一页bb为0,让它自加1,就保持继续点击上一页,bb不会小于0
  17. if($bb>=$num){ // 限制下一页cc不要大于总页数num3
  18. $bb=$bb-1; } // 如果下一页cc加到3,让它自减1,就保持继续点击下一页,cc不会增长
  19. echo '<a href="?p=' . ($aa-1) . ' ">上一页</a>';
  20. for($i=0; $i<=$num; $i++){
  21. echo ' <a href="?p=' . ($i) . ' ">' .( ($i)+1 ). '</a> '; }
  22. echo '<a href="?p=' . ($bb+1) . ' ">下一页</a>';

数据库学生表如下:

(把下面代码复制到 student.sql 文件导入数据库student表中即可)

  1. INSERT INTO `student` (`id`, `name`, `course`) VALUES
  2. (1, '唐建林', '化学'),
  3. (2, '黄蓉', 'php'),
  4. (3, '大唐', 'javascript'),
  5. (4, '李3明', '物理'),
  6. (5, '林3欢', 'css3'),
  7. (6, '李明', 'html'),
  8. (7, '李明', 'html'),
  9. (8, '1李明', '1html'),
  10. (9, '2李明', '22tml'),
  11. (10, '老顽童', 'mysql');

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学