php分页多种实现程序代码
本文章总结了目前常用的几种分页代码,比如说上一页,下一页之类的,还有一种数字分页,像1,2,3...之类的等.
分页代码如下:
<?php //page当前页,num每页的页数 $page =isset( $_GET [ 'page' ])? intval ( $_GET [ 'page' ]):1; $num =5; $conn = mysql_connect( '127.0.0.1' , 'root' , '' ); if (! $conn ) { die ( 'Could not connect:' .mysql_error()); } mysql_select_db( 'shop' ); //获取记录总数 $total =mysql_num_rows(mysql_query( "select * from user" )); //计算页数 $pagenum = ceil ( $total / $num ); //限制页数不能超出范围 If( $page > $pagenum || $page == 0){ Echo 'Error : Can Not Found The page.' ; Exit ; } //语句[Select * from table limit 0,10]从table表提取十条信息,0为起点,10为提取的数目 //$offset为起点值,如当前页为第一页,每页5条,起点即为0,同理当前为第二页,起点将为5 $offset =( $page -1)* $num ; $result =mysql_query( "select * from user limit $offset,$num" ); while ( $it =mysql_fetch_array( $result )){ echo 'id:' . $it [ 'id' ]. ' name:' . $it [ 'name' ]. '<br />' ; } //显示链接页面切换链接,当前页无链接 for ( $i =1; $i <= $pagenum ; $i ++){ $show =( $i != $page )? "<a href='index.php?page=" . $i . "'>$i</a>" : "<b>$i</b>" ; echo $show . " " ; } echo $total . '条记录,每页5条,共' . $pagenum . '页' ; mysql_free_result( $result ); mysql_close( $conn ); ?>实例2,代码如下:
<? //function.php 这里是主函数 function php_page( $page_dbname , $page_size , $page ) { if ( $page == "" ) { $page =1;}; if ( $ljjl == "" ) { $ljjl =0;}; if ( $page ) { //$page_dbname="tb_insert"; //$page_size=4; //每页显示4条记录 $query = "select count(*) as total from " . $page_dbname ; //从数据库中读取数据 $result =mysql_query( $query ); $message_count =mysql_result( $result ,0, "total" ); //获取总的记录数 $page_count = ceil ( $message_count / $page_size ); //获取总的页数 $offset =( $page -1)* $page_size ; $query = "select * from " . $page_dbname . " order by id desc limit $offset, $page_size" ; $result =mysql_query( $query ); //内容显示 这里只是简单的作个示范,可以按你的要求随便改动。 while ( $myrow =@mysql_fetch_array( $result )) { echo $myrow [name]. " | " . $myrow [number]. " | " . $myrow [tel]. " | " . $myrow [address]. "<br><br>" ; } } echo "页次:" . $page . "/" ; echo $page_count . "页 记录:" ; echo $message_count . "条" . "<br>" ; if ( $page !=1) { echo "<a href=index.php?page=1>首页</a> " ; echo "<a href=index.php?page=" .( $page -1). ">上一页</a> " ; } else { echo "首页 " ; echo "上一页 " ; } for ( $i =1; $i <= $page_count ; $i ++) { if ( $page == $i ) { echo $i . " " ;} else { echo "<a href=index.php?page=$i>$i</a> " ;} } if ( $page < $page_count ) { echo "<a href=index.php?page=" .( $page +1). ">下一页</a> " ; echo "<a href=index.php?page=" . $page_count . ">尾页</a>" ; } else { echo "下一页 " ; echo "尾页" ; } } ?>conn.php 连接数据库,代码如下:
<?php $id =mysql_connect( "localhost" , "root" , "root" ) or dir( '连接失败:' . mysql_error()); //mysql_connect("IP","用户名","密码") if (mysql_select_db( "db_database06" , $id )) echo "" ; else echo ( '连接失败:' . mysql_error()); mysql_query( "set names gb2312" ); ?>主程序,将上面俩个文件包含进来,再调用一个php_page()就可完成分页,代码如下:
<?php require_once ( "conn.php" ); require_once ( "function.php" ); php_page( "tb_insert" ,3, $_GET [page]); // "tb_insert"是表名,3是在每页要显示的记录数,$_GET[page]是page的id,直接用就可以了。 ?>上面的一种是文字分页,比如说上一页,下一页之类的,还有一种数字分页,像1,2,3...之类的,这个比较简单,前者稍微复杂些,最后一种是他们2者结合,代码如下:
--> 1 //获取当前页数 if (isset( $_GET [ 'page' ])){ $page = intval ( $_GET [ 'page' ]); } else { $page =1; } $PageSize = 1; //每页的记录数量 // 获取总数量 $sql = "select count(*) from blog" ; $result = mysql_query( $sql ); $row = mysql_fetch_row( $result ); $amount = $row [0]; /*计算总页数 if($amount){ if($amount<$PageSize) { //如果总数量小于每页的记录数量$PageSize,那么只有一页. $PageCount = 1; } if($amount%$PageSize) { //总数量除以每页的记录数量取于 $PageCount =& amp;nbsp;(int)($amount/$PageSize)+1;//如果有于,则页数等于总数量除每页的记录数加1 } else{ $PageCount =& amp;nbsp;$amount/$PageSize;//没有,则结果是页数 } } else{ $PageCount = 0; }*/ $PageCount = ceil ( $amount / $PageSize ); //总页数=总数量除以每页数量 如果有小树,则进位< span style="color: #008000;"> if ( $Page > $PageCount | $page ==0){ // 如果当前页数大于总页数 echo "不能发现此页!" ; exit (); } //翻页链接 $PageOut = '' ; if ( $page ==1){ //如果页数只有一页 $PageOut .= '第一页|上一页' ; } else { $PageOut .= '<a href="index.php?page=1">第一页& lt;/a>|<a href="index.php?page=' .( $page -1). '">上一页</a>|' ; } if ( $page == $PageCount || $PageCount ==0){ //如果当前页等于总也数 $PageOut .= '下一页|尾页' ; } else { $PageOut .= '<a href="index.php?page=' .( $page +1). '">下一页</a>|<a href="index.php?page=' . $PageCount . '">尾页</a>' ; } //获取数据 if ( $amount ){ $sql = "select * from blog limit " .( $page -1)*( $PageSize ). ",$PageSize" ; $result =mysql_query( $sql ); while ( $row =mysql_fetch_array( $result )){ //此段代码只是示例 $blogs [] = array ( 'bid' => $row [ 'bid' ], 'title' => $row [ 'title' ]); foreach ( $blogs as $blog ){ $title = $blog [ 'title' ]; } $output = "<a href=index.php?action=blog_del&bid=$blog[bid]>删除</a>" . "<a href=index.php?action=blog_edit&bid=$blog[bid]>编辑</a>" . "<a href=index.php?action=blog_view&bid=$blog[bid]>查看</a>" ; include ( "template/default/blog.tpl.php" ); echo $PageOut ; } for ( $i =1; $i <= $PageCount ; $i ++){ //数字分页 $Pageshow = ( $i != $page )? "<a href='index.php?page=" . $i . "'>$i</a>" : "<b>$i</b>" ; echo $PageShow ; } echo $amount . '条记录,每页' . $PageSize . '条,共' . $PageCount . '页' ; }查看更多关于php分页多种实现程序代码 - php分页的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did27915