PHP分页的实现

来源:互联网 发布:基督教网络歌曲116首 编辑:程序博客网 时间:2024/05/17 07:51

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条数据;
 当offset>=0时候,表示提取查询到的offset开始的rows条数据;此时如果rows<0表示提取查询到的offset开始的所有数据
 当offset<0的时候,表示提取查询到的除出后rows条数据的所有数据,即剔除last row-rowslast rows之间的-rows条数据
 另外,如果rows大于实际查询的数据条数,则取rows为实际查询的数据条数。

数据库名为visitor_book

取的是表guestbook中的数据。

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


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



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

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

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

0 0
原创粉丝点击