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作为惟一的页面标识,传递参数