好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php简单分页实例程序代码详解

php分页处理功能是所有服务器脚本需要支持的一个功能,原理大概都是一样的获取当前页码与记录数,然后再进行一些计算之后获取从起始与结束位置的内容然后再利用php显示出来即可,下面来看看这个分页例子,后面我会详细介绍.

php分页例子 ,代码如下:

<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.phpfensi.com /TR/xhtml1/DTD/xhtml1-transitional.dtd" >  <html    xmlns= "http://www.w3.org/1999/xhtml" > <head> <meta http-equiv= "Content-Type"  content= "text/html; charset=utf-8"  />    <title>php make page list</title>    <style type= "text/CSS" >    <!-- .page a:link { color: #0000FF; text-decoration: none; }    .page a:visited { text-decoration: none; color: #0000FF; }    .page a:hover { text-decoration: none; color: #0000FF; }    .page a:active { text-decoration: none; color: #0000FF; }    .page{color:#0000FF;} --> </style>    </head>    <body>    <table width= "530"  height= "103"  border= "0"  align= "center"  cellpadding= "0"  cellspacing= "1"  bgcolor= "#CCCCCC" > <tr> <th width= "30"  height= "38"  bgcolor= "#E3E3E3"  scope= "col" >ID</th> <th width= "500"  bgcolor= "#E3E3E3"  scope= "col" >title</th> </tr> <?php  /* * Created on 2010-4-17 * * Order by Kove Wong */   include   "conn.php" ;    $Page_size =10;    $result =mysql_query( 'select * from huazhuangpin' );   $count  = mysql_num_rows( $result );   $page_count  =  ceil ( $count / $Page_size );    $init =1;  $page_len =7;  $max_p = $page_count ;  $pages = $page_count ;    //判断当前页码       if ( empty empty ( $_GET [ 'page' ])|| $_GET [ 'page' ]<0){  $page =1; } else  {  $page = $_GET [ 'page' ]; }    $offset = $Page_size *( $page -1);   $sql = "select * from huazhuangpin limit $offset,$Page_size" ;  $result =mysql_query( $sql );   while  ( $row =mysql_fetch_array( $result )) { ?> <tr> <td bgcolor= "#E0EEE0"  height= "25px" ><div align= "center" > <?php  echo   $row [ 'id' ]?> </div></td> <td bgcolor= "#E0EEE" ><div align= "center" > <?php  echo   $row [ 'title' ]?> </div></td> </tr> <?php }  $page_len  = ( $page_len %2)? $page_len : $pagelen +1; //页码个数 $pageoffset = ($page_len-1)/2;//页码个数左右偏移量     $key = '<div>' ;  $key .= "<span>$page/$pages</span> " ;  //第几页,共几页 if($page!=1){ $key.="<a href=\"".$_SERVER['PHP_SELF']."?page=1\">第一页</a> "; //第一页 $key.="<a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\">上一页</a>"; //上一页 }else { $key.="第一页 ";//第一页 $key.="上一页"; //上一页 } if($pages>$page_len){ //如果当前页小于等于左偏移 if($page<=$pageoffset){ $init=1; $max_p = $page_len; }else{//如果当前页大于左偏移 //如果当前页码右偏移超出最大分页数 if($page+$pageoffset>=$pages+1){ $init = $pages-$page_len+1; }else{ //左右偏移都存在时的计算 $init = $page-$pageoffset; $max_p = $page+$pageoffset; } } } for($i=$init;$i<=$max_p;$i++){ if($i==$page){ $key.=' <span>'.$i.'</span>'; } else { $key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".$i."\">".$i."</a>"; } } if($page!=$pages){ $key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\">下一页</a> ";//下一页 $key.="<a href=\"".$_SERVER['PHP_SELF']."?page={$pages}\">最后一页</a>"; //最后一页 }else { $key.="下一页 ";//下一页 $key.="最后一页"; //最后一页 } $key.='</div>'; ?> <tr> <td colspan="2" bgcolor="#E0EEE0"><div align="center"><?php echo $key?></div></td> </tr> </table>     </body> </html> 

分析此例子,代码片段一,代码如下:

$Page_size =10;    $result =mysql_query( 'select * from huazhuangpin' );   $count  = mysql_num_rows( $result );   $page_count  =  ceil ( $count / $Page_size ); 

这代码是从数据库中先获取数据库总记录然后再利用$count/$Page_size(总记录除上每天多少条记录得出有多少页记录并且赋值给$page_coun.

代码片段二,代码如下:

$offset = $Page_size *( $page -1);   $sql = "select * from huazhuangpin limit $offset,$Page_size" ;  $result =mysql_query( $sql ); 

这代码核心部份是$offset=$Page_size*($page-1); 这个是利用我们获取的当前页面-1然后判断总记录在多少条再在sql中实现从X,y条记录读取limit $offset,$Page_size 这样就实现了分页获取记录了.

代码片段三,代码如下:

if ( empty empty ( $_GET [ 'page' ])|| $_GET [ 'page' ]<0){  $page =1; } else  {  $page = $_GET [ 'page' ]; } //开源代码phpfensi.com  

这段代码是获取page如果page为空就默认为第一页,否则就获取当前页面页码给$page变量以后面的程序作参考值处理.

查看更多关于php简单分页实例程序代码详解的详细内容...

  阅读:78次