登录
注册
违法和不良信息举报
联系客服
PHP分页显示制作详细讲解
下载文档
聪明文档网
最新最全的文档下载
求职/职场
总结/汇报
工作范文
教学研究
资格考试
外语考试
高等教育
高中教育
初中教育
小学教育
幼儿教育
表格/模板
人文社科
当前位置:
首页
> PHP分页显示制作详细讲解
PHP分页显示制作详细讲解
时间:
下载该word文档
1
、前言
分页显示是一种非常常见的浏览和显示大量数据的方法,
属于
web
编程中最常处
理的事件之一。
对于
web
编程的老手来说,
编写这种代码实在是和呼吸一样自然,
但是对于初学者来说,
常常对这个问题摸不着头绪,
因此特地撰写此文对这个问
题进行详细的讲解,
力求让看完这篇文章的朋友在看完以后对于分页显示的原理
和实现方法有所了解。本文适合初学者阅读,所有示例代码均使用
php
编写。
2
、原理
所谓分页显示,
也就是将数据库中的结果集人为的分成一段一段的来显示,
这里
需要两个初始的参数:
每页多少条记录(
$PageSize
)?
当前是第几页(
$CurrentPageID
)?
现在只要再给我一个结果集,我就可以显示某段特定的结果出来。
至于其他的参数,
比如:
上一页
(
$PreviousPageID
)
、
下一页
(
$NextPageID
)
、
总页数(
$numPages
)等等,都可以根据前边这几个东西得到。
以
mysql
数据库为例,如果要从表内截取某段内容,
sql
语句可以用:
select
*
fromtablelimitoffset,rows
。看看下面一组
sql
语句,尝试一下发现其中
的规率。
前
10
条记录:
select*fromtablelimit0,10
第
11
至
20
条记录:
select*fromtablelimit10,10
第
21
至
30
条记录:
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=1>
第
一
href=?page='.($page-1.'>
上一页
|';
}
if(($page==$page_count||($page_count==0{
$page_string.='
下一页
|
尾页
';
如果
取总
如果
如果
页
|
}
else{
$page_string
.=
'
href=?page='.($page+1.'>
下
一
页
|
href=?page='.$page_count.'>
尾页
';
}
//
获取数据,以二维数组格式返回结果
if($amount{
$sql
=
"select
*
from
table
order
by
id
desc
limit
".
($page-1*$page_size.",$page_size";
$result=mysql_query($sql;
while($row=mysql_fetch_row($result{
$rowset[]=$row;
}
}else{
$rowset=array(;
}
//