本文摘自PHP中文网,作者怪我咯,侵删。
所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:每页多少条记录($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语句,我们可以总结出这样一个模板:
1 | select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize
|
利用这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。搞定了最重要的如何获取数据的问题以后,剩下的就仅仅是传递参数,构造合适的sql语句然后使用php从数据库内获取数据并显示了。以下我将用具体代码加以说明。
简单代码实现
请详细阅读以下代码,自己调试运行一次,最好把它修改一次,加上自己的功能,比如搜索等等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | $link = mysql_connect( "localhost" , "mysql_user" , "mysql_passWord" )
or die ( "Could not connect: " . mysql_error());
if ( isset( $_GET [ 'page' ]) ){
$page = intval ( $_GET [ 'page' ] );
}
else {
$page = 1;
}
$PageSize = 10;
$sql = "select count(*) as amount from table" ;
$result = mysql_query( $sql );
$row = mysql_fetch_row( $result );
$amount = $row [ 'amount' ];
if ( $amount ){
if ( $amount < $page_size ){ $page_count = 1; }
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 .= '第一页|.($page-1).' >上一页|';
}
if ( ( $page == $page_count ) || ( $page_count == 0) ){
$page_string .= '下一页|尾页' ;
}
else {
$page_string .= '.($page+1).' >下一页|. $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 ();
}
?>
|
以上就是php实现分页显示代码的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
PHP实现后期静态绑定
navicat怎么显示字段注释
mysql数据如何生成PHP数组文件
PHP实现分页显示代码
PHP closure类的使用方法
PHP 限制某个ip访问的实现方法
安装redis及PHP的redis扩展
PHP 闭包实例解析
如何通过PHP实现mysql数据库连接、查询、记录集等操作
mysql中buffered and unbuffered queries及pdo的非缓存查询例子
更多相关阅读请进入《PHP》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » php实现分页显示代码