聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> php实现分页原理详细介绍

php实现分页原理详细介绍

时间:2023-01-19 03:27:26    下载该word文档
1、前言

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

2、原理

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

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

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

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

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

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

//建立数据库连接

$link=mysql_connect("localhost","mysql_user","mysql_password"ordie("Couldnotconnect:".mysql_error(;//获取当前页数
if(isset($_GET['page']{$page=intval($_GET['page'];}else{$page=1;}
//每页数量
$PageSize=10;//获取总数据量
$sql="selectcount(*asamountfromtable";$result=mysql_query($sql;$row=mysql_fetch_row($result;$amount=$row['amount'];//记算总共有多少页
if($amount{if($amount<$page_size{$page_count=1;}//如果总数据量小于$PageSize,那么只有一页
if($amount%$page_size{//取总数据量除以每页数的余
$page_count=(int($amount/$page_size+1;//如果有余数,则页数等于总数据量除以每页数的结果取整再加一
}else{$page_count=$amount/$page_size;//如果没有余数,则页数等于总数据量除以每页数的结果}}else{$page_count=0;}
//翻页链接
$page_string='';if($page==1{$page_string.='第一页|上一页|';}else{$page_string.='";第一页|href="/?page='."($page-1.'>上一页|';}
if(($page==$page_count||($page_count==0{$page_string.='下一页|尾页';

免费下载 Word文档免费下载: php实现分页原理详细介绍

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服