加入收藏 | 设为首页 | 会员中心 | 我要投稿 呼伦贝尔站长网 (https://www.0470zz.com/)- 科技、建站、边缘计算、物联网、开发!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-07-22 09:31:10 所属栏目:PHP教程 来源:互联网
导读:php分页处理功能是所有服务器脚本需要支持的一个功能,原理大概都是一样的获取当前页码与记录数,然后再进行一些计算之后获取从起始与结束位置的内容然后再利用php显示出来即可,下面来看看这个分页例子,后面我会详细介绍. php分页例子,代码如下: !DOCTYPE html
  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(emptyempty($_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 这样就实现了分页获取记录了.

(编辑:呼伦贝尔站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读