快速掌握PHP文章分页技巧

PHP语言为我们带来了许多功能的实现,应用范围非常广泛。我们今天为大家详细讲解有关PHP文章分页的相关实现方法。希望多大家有所帮助。#t#

成都创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为资兴企业提供专业的网站建设、成都做网站资兴网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

1、前言

对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和实现方法有所了解。本文适合初学者阅读,所有示例代码均使用php编写。

2、PHP文章分页原理

所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:

每页多少条记录($PageSize)?
当前是第几页($CurrentPageID)?

现在只要再给我一个结果集,我就可以显示某段特定的结果出来。
至于其他的参数,比如:上一页($PreviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。
以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。

前10条记录:select * from table limit 0,10
第11至20条记录:select * from table limit 10,10
第21至30条记录:select * from table limit 20,10
……

这一组sql语句其实就是当$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:

select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize

拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。搞定了最重要的如何获取数据的问题以后,剩下的就仅仅是传递参数,构造合适的sql语句然后使用php从数据库内获取数据并显示了。以下我将用具体代码加以说明。

3、PHP文章分页简单代码

请详细阅读以下代码,自己调试运行一次,***把它修改一次,加上自己的功能,比如搜索等等。

 
 
 
  1. < ?php  
  2. // 建立数据库连接  
  3. $link = mysql_connect("localhost", 
    "mysql_user", "mysql_password")   
  4. or die("Could not connect: " . mysql_error());   
  5. // 获取当前页数  
  6. if( isset($_GET['page']) ){  
  7. $page = intval( $_GET['page'] );  
  8. }  
  9. else{  
  10. $page = 1;  
  11. }   
  12. // 每页数量  
  13. $PageSize = 10;   
  14. // 获取总数据量  
  15. $sql = "select count(*) as amount from table";  
  16. $result = mysql_query($sql);  
  17. $row = mysql_fetch_row($result);  
  18. $amount = $row['amount'];   
  19. // 记算总共有多少页  
  20. if( $amount ){  
  21. if( $amount < $page_size ){ $page_count = 1; } 
  22. //如果总数据量小于$PageSize,那么只有一页  
  23. if( $amount % $page_size ){ 
  24. //取总数据量除以每页数的余数  
  25. $page_count = (int)($amount / $page_size) + 1; 
  26. //如果有余数,则页数等于总数据量除以每页数的结
    果取整再加一  
  27. }else{  
  28. $page_count = $amount / $page_size; 
  29. //如果没有余数,则页数等于总数据量除以每页数的结果  
  30. }  
  31. }  
  32. else{  
  33. $page_count = 0;  
  34. }  
  35.  
  36. // 翻页链接  
  37. $page_string = '';  
  38. if( $page == 1 ){  
  39. $page_string .= '***页|上一页|';  
  40. }  
  41. else{  
  42. $page_string .= '***页
    |上一页|';  
  43. }   
  44. if( ($page == $page_count) || ($page_count == 0) ){  
  45. $page_string .= '下一页|尾页';  
  46. }  
  47. else{  
  48. $page_string .= '
    下一页|尾页';  
  49. }  
  50. // 获取数据,以二维数组格式返回结果  
  51. if( $amount ){  
  52. $sql = "select * from table order by id desc 
    limit ". ($page-1)*$page_size .", $page_size";  
  53. $result = mysql_query($sql);  
  54.  
  55. while ( $row = mysql_fetch_row($result) ){  
  56. $rowset[] = $row;  
  57. }  
  58. }else{  
  59. $rowset = array();  
  60. }  
  61. // 没有包含显示结果的代码,那不在讨论范围,
    只要用foreach就可以很简单的用得到的二维数组来显示结果  
  62. ?> 

以上就是PHP文章分页的相关实现方法。

本文名称:快速掌握PHP文章分页技巧
文章链接:http://www.gawzjz.com/qtweb/news43/191343.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联