PHP分页的实现

php分页的代码参考文章:

PHP分页教程原理:http://jingyan.baidu.com/article/6525d4b1299019ac7d2e9482.html

条件运算符的使用:http://tieba.baidu.com/p/2075610560

文件名称为:show_records.php

<!--分页显示代码测试-->
<?php 
	require_once("sys_conf.inc");
	$link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD);			
	mysql_select_db($DBNAME); 	//连接数据库
	
	$sql="select * from guestbook";
	$query=mysql_query($sql,$link_id);
	$all_num=mysql_num_rows($query); //总条数
	$page_num=3; //每页条数
	$page_all_num = ceil($all_num/$page_num); //总页数
	$page=empty($_GET['page'])?1:$_GET['page']; //当前页数
	$page=(int)$page; //安全强制转换
	$limit_st = ($page-1)*$page_num; //起始数
	 
	$sql="select * from guestbook limit $limit_st , $page_num";
	 
	$query=mysql_query($sql,$link_id);
	while($row=mysql_fetch_array($query))
	{
	   echo $row['Name']." <a href='view.php?id={$row['rid']}'>浏览</a><hr>";
	}
	$px = $page>=$page_all_num ? $page_all_num : $page+1 ; //控制页码,若下一页页码大于等于最大页数,
								//则改为最大页码,否则加1
	$ps = $page<=1 ? 1 : $page-1 ; 				//控制最小页码,若上一页小于等于1则页码设为1,否则减1
 
?>
	<a href='show_records.php'>首页 </a> | 
	<a href='show_records.php?page=<?php echo $ps?>'>上一页 </a> | 
	<a href='show_records.php?page=<?php echo $px?>'>下一页 </a> | 
	<a href='show_records.php?page=<?php echo $page_all_num?>'>尾页 </a>

引用的sys_conf.inc代码:

<!--sys_conf.inc:系统配置文件------------->
<?php
//数据库配置全局变量
$DBHOST="localhost";
$DBUSER="root";
$DBPWD="root";
$DBNAME="visitor_book";
?>

几点解释:

1.有三处用到了条件运算符:

$page=empty($_GET['page'])?1:$_GET['page']; //当前页数
$px = $page>=$page_all_num ? $page_all_num : $page+1 ; 
$ps = $page<=1 ? 1 : $page-1 ; 					      

条件运算符的意义是:( 百度百科解释

条件运算符是惟一有3个操作数的运算符,所以有时又称为三元运算符。

对于条件表达式b?x:y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。

一个条件表达式从不会既计算x,又计算y。条件运算符是向右结合的,也就是说,从右向左分组计算。例如,a?b:c?d:e将按a?b:(c?d:e)执行。


简单来说:
a?b:c;
等同于
if (a)
{b}
else
{c}

2.一个SQL语句

$sql="select * from guestbook limit $limit_st , $page_num";
SQL的limit语法的如以下形式(参见:sql的limit)

SELECT * FROM table   LIMIT  [ offset ,]  rows   |   rows  OFFSET  offset
 当省略 offset 的时候, offset 作为 0 处理,表示提取查询到的前 rows 条数据;
 当 offse t> =0 时候,表示提取查询到的 offset 开始的 rows 条数据;此时如果 rows <0 表示 提取查询到的 offset 开始的 所有 数据
 当offset <0 的时候,表示提取查询到的除出后 rows 条数据的所有数据,即剔除 last row - rows last rows 之间的 - rows 条数据
 另外,如果 rows 大于实际查询的数据条数,则取 rows 为实际查询的数据条数。

数据库名为visitor_book

取的是表guestbook中的数据。

显示数据为Name字段,通过惟一的主键rid来作为页面参数。


显示效果如下:“page=”后面的数字为变量$page



点击“浏览”刚跳转到相应的

view.php?id={$row['rid']}

主键rid作为惟一的页面标识,传递参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP中,实现分页查询功能通常需要以下步骤: 1. 获取总记录数:首先,我们需要查询数据库或其他数据源,获取需要分页查询的数据总量。可以使用SQL语句的COUNT函数或其他方法来实现。 2. 计算总页数:将总记录数除以每页显示的记录数,并向上取整,即可得到总页数。可以使用ceil()函数来实现向上取整。 3. 获取当前页码:通过GET或POST方式获取当前页码值,并进行合法性校验。 4. 计算查询的起始位置:根据当前页码和每页显示的记录数,计算出查询的起始位置。通过公式:(当前页码-1) * 每页记录数可以得到起始位置。 5. 执行分页查询:利用计算出的起始位置和每页显示的记录数,编写SQL语句进行分页查询,并将结果返回给前端页面进行展示。 6. 生成分页导航:根据总页数和当前页码,通过循环生成分页导航,可以使用for循环或其他方法实现。同时,在生成导航时,还需要考虑页面的跳转链接和样式。 7. 实现上一页和下一页功能:根据当前页码,生成上一页和下一页的跳转链接,并进行合法性校验,确保不越界。 8. 限制非法页码访问:在获取当前页码的步骤中,对用户输入的页码进行合法性校验,确保用户输入的页码在有效范围内。 9. 显示查询结果:将查询结果显示在前端页面上,可以使用表格、列表等方式进行展示。 通过以上步骤,可以实现基本的PHP分页查询功能。根据实际需求,还可以对分页导航进行优化,并添加其他功能,如展示每页显示记录数选择、快速跳转到指定页等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值