Browsed by
分类:WEB开发

PHP+MYSQL实现分页导航

PHP+MYSQL实现分页导航

all rights reserved by koffuxu.com

预期效果

思路

通过SQL语句SELECT * FROM table LIMIT start end来从MySql数据库

步骤

  1. 传入页码p;
  2. 根据页码获取数据php->mysql
  3. 显示数据+分页条

源码

github链接

注意点

  • table,input,button等控件的样式不会继承body,需要重新定义如下
  1. input, label, select, option, textarea, button, fieldset, legend,table {
  2. font-size:18px;
  3. FONT-FAMILY:verdana;
  4. }
  • 在进行查询数据库语言拼接的时候,LIMIT关键字后面要留空格,且拼接的内容要用括弧包裹
  1. $sql = "SELECT * FROM pages LIMIT ".(($page-1)*5).",5";
  • 在显示页的时候,作者的逻辑比较复杂,可以简化梳理
  1. //1,主要是$total_pages > $show_page,特殊情况再另外考虑;
  2. //2,再利用for循环显示全部;
  3. //3,再考虑前面的省略号
  4. if($total_pages > $show_page){
  5. //考虑正常情况下,...456...下一页 尾页
  6. if($page-$page_off > 1)
  7. $page_banner.="...";
  8. $start = $page-$page_off;
  9. //非正常情况下,12...下一页 尾页
  10. if($start == 0)
  11. $start = 1;
  12. $end = $page+$page_off;
  13. //...78 总共8页
  14. if($end > $total_pages)
  15. $end = $total_pages;
  16. for($i=$start; $i<=$end; $i++){
  17. //当前页显示高亮
  18. if($page == $i){
  19. $page_banner.="<span class='current'>$i</span>";
  20. }else{
  21. $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".$i."'>{$i}</a>";
  22. }
  23. }
  24. if($page+$page_off < $total_pages)
  25. $page_banner.="...";
  26. //显示尾页与下一页
  27. if($page < $total_pages){
  28. $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一页></a>";
  29. $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($total_pages)."'>尾页</a>";
  30. }else{
  31. $page_banner.="<span class='disable'>下一页></span>";
  32. $page_banner.="<span class='disable'>尾页</span>";
  33. }
  34. }

最终效果

参考:

  1. IMOOC
  2. HTML手册
  3. PHP函数手册
TOP