77范文网 - 专业文章范例文档资料分享平台

PHP分页技术

来源:网络收集 时间:2019-04-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

分页技术

1、前言

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

2、原理

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

每页多少条记录($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、简单代码 3.1面向过程:

// 建立数据库连接

$link = mysql_connect(\, \, \) or die(\. mysql_error());

mysql_query (\); //设置utf8字符集,以正确显示中文信息 mysql_select_db(\,$link)

or die ( \不能选择指定的MySQL数据库:\. mysql_error());

// 获取当前页数

if( isset($_GET['page']) ){

$page = intval( $_GET['page'] ); } else{

$page = 1; }

// 每页数量

$page_size = 1;

// 获取总数据量

$sql = \; $result = mysql_query($sql); $row = mysql_fetch_row($result); //var_dump($row); $amount = $row[0]; // 记算总共有多少页 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 .= '第一页|上一页|'; }

if( ($page == $page_count) || ($page_count == 0) ){ $page_string .= '下一页|尾页'; } else{

$page_string .= '下一页|尾页'; }

// 获取数据,以二维数组格式返回结果 if( $amount ){

$sql = \. ($page-1)*$page_size .\$page_size\; $result = mysql_query($sql);

while ( $row = mysql_fetch_row($result) ){ $rowset[] = $row; } }else{

$rowset = array(); }

//显示数据

foreach ($rowset as $row) {

?>


总共

mysql_free_result($result); //释放与结果集相关联的资源

mysql_close($link); //关闭数据库连接 ?>

3.2引入ajax技术:

tempt.php:

分页测试

temp2.php:

header(\);

$link = mysql_connect (\,\,\) //建立数据库连接 or die ( \不能连接MySQL服务器:\. mysql_error()); mysql_query (\); //设置utf8字符集,以正确显示中文信息 mysql_select_db(\,$link) //选择MySQL服务器下的userlogin数据库 or die ( \不能选择指定的MySQL数据库:\. mysql_error()); $pageSize = 1;//设置每页显示的记录数

$sql = \;// SQL 查询语句 $result = mysql_query($sql,$link); // 进行查询,获取数据库总的记录数 $allPage = mysql_fetch_row($result); $numPage = $allPage[0]; //总的数据记录数

$pages = intval($numPage/$pageSize); // 计算页数 if (isset($_POST['page']))// 获取客户端传递页码数 {

$page=intval($_POST['page']); } else

{

$page=1; //设置为第一页 }

mysql_free_result($result); $first = 1;

$prev = $page-1; //上一页 $next = $page+1; // 下一页 $last = $pages; //尾页

$offset = $pageSize*($page - 1); //计算记录偏移量

$sql = \$offset,$pageSize\;// SQL 查询语句

$result = mysql_query($sql,$link); //读取指定记录数

$row = mysql_fetch_row ($result ); // 从记录集中获取一行记录 do {

for ($i =0; $i < 5; $i++) printf (\, $row[$i]);

}while ($row = mysql_fetch_row($result)); mysql_free_result($result); //释放资源 echo \页次:\.$page.\.$pages; echo \共\.$pages.\页 \;

if ($page>1) echo \onclick=\\\.$first.\href='#'>首页 \;

if ($page>1) echo \onclick=\\\.$prev.\href='#'>上页 \;

if ($page<$pages) echo \.$next.\下页 \;

if ($page<$pages) echo \.$last.\尾页\;

echo \转到第 \; ?>

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库PHP分页技术在线全文阅读。

PHP分页技术.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/583890.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: