当前位置:首页 > PHP教程 > php分页 > 列表

php分页多种实现程序代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-31 13:47:27 浏览: 评论:0 

本文章总结了目前常用的几种分页代码,比如说上一页,下一页之类的,还有一种数字分页,像1,2,3...之类的等.

分页代码如下:

  1. <?php 
  2.   //page当前页,num每页的页数 
  3.   $page=isset($_GET['page'])?intval($_GET['page']):1; 
  4.   $num=5; 
  5.   $conn = mysql_connect('127.0.0.1','root',''); 
  6.   if (!$conn) { 
  7.    die('Could not connect:'.mysql_error()); 
  8.   } 
  9.   mysql_select_db('shop'); 
  10.   //获取记录总数 
  11.   $total=mysql_num_rows(mysql_query("select * from user")); 
  12.   //计算页数 
  13.   $pagenum=ceil($total/$num); 
  14.   //限制页数不能超出范围 
  15.   If($page>$pagenum || $page == 0){ 
  16.     Echo 'Error : Can Not Found The page.'; 
  17.     Exit; 
  18.   } 
  19.   //语句“Select * from table limit 0,10”从table表提取十条信息,0为起点,10为提取的数目 
  20.   //$offset为起点值,如当前页为第一页,每页5条,起点即为0,同理当前为第二页,起点将为5 
  21.   $offset=($page-1)*$num; 
  22.   $result=mysql_query("select * from user limit $offset,$num"); 
  23.   while($it=mysql_fetch_array($result)){ 
  24.     echo 'id:'.$it['id'].' name:'.$it['name'].'<br />'; 
  25.   } 
  26.   //显示链接页面切换链接,当前页无链接 
  27.   for($i=1;$i<=$pagenum;$i++){ 
  28.     $show=($i!=$page)?"<a href='index.php?page=".$i."'>$i</a>":"<b>$i</b>"; 
  29.     echo $show." "; 
  30.   } 
  31.   echo $total.'条记录,每页5条,共'.$pagenum.'页'; 
  32.    mysql_free_result($result); 
  33.   mysql_close($conn); 
  34. ?> 

实例2,代码如下:

  1. <? 
  2. //function.php  这里是主函数 
  3. function php_page($page_dbname,$page_size,$page) 
  4. { 
  5. if ($page=="") 
  6.  {$page=1;}; 
  7. if ($ljjl=="") 
  8.  {$ljjl=0;}; 
  9. if($page) 
  10.   { 
  11.     //$page_dbname="tb_insert"; 
  12.  //$page_size=4;          //每页显示4条记录 
  13.     $query="select count(*) as total from ".$page_dbname;  //从数据库中读取数据 
  14.  $result=mysql_query($query); 
  15.     $message_count=mysql_result($result,0,"total");  //获取总的记录数 
  16.     $page_count=ceil($message_count/$page_size);  //获取总的页数 
  17.     $offset=($page-1)*$page_size;    
  18.     $query="select * from ".$page_dbname." order by id desc limit $offset, $page_size";    
  19.  $result=mysql_query($query); 
  20. //内容显示 这里只是简单的作个示范,可以按你的要求随便改动。 
  21.  while ($myrow=@mysql_fetch_array($result)) 
  22.  { 
  23.   echo $myrow[name]." | ".$myrow[number]." | ".$myrow[tel]." | ".$myrow[address]."<br><br>"; 
  24.   } 
  25.    
  26. } 
  27.  echo "页次:".$page."/"; 
  28.  echo $page_count."页 记录:"; 
  29.  echo $message_count."条"."<br>"; 
  30.  
  31.   if($page!=1) 
  32.    { 
  33.     echo  "<a href=index.php?page=1>首页</a>&nbsp;"; 
  34.        echo "<a href=index.php?page=".($page-1).">上一页</a>&nbsp;"; 
  35.     } 
  36.   else 
  37.    { 
  38.     echo  "首页&nbsp;"; 
  39.        echo "上一页&nbsp;";    
  40.    } 
  41.    
  42.   for($i=1; $i<=$page_count; $i++) 
  43.   { 
  44.    if ($page==$i) 
  45.     {echo  $i."&nbsp;";} 
  46.     else 
  47.        {echo  "<a href=index.php?page=$i>$i</a>&nbsp;";} 
  48.    } 
  49.    
  50.   if($page<$page_count) 
  51.    { 
  52.     echo "<a href=index.php?page=".($page+1).">下一页</a>&nbsp;"; 
  53.     echo  "<a href=index.php?page=".$page_count.">尾页</a>"; 
  54.    } 
  55.   else 
  56.    { 
  57.     echo "下一页&nbsp;"; 
  58.     echo  "尾页"; 
  59.    }  
  60. } 
  61. ?> 

conn.php 连接数据库,代码如下:

  1. <?php 
  2. $id=mysql_connect("localhost","root","root")or dir('连接失败:' . mysql_error()); 
  3. //mysql_connect("IP","用户名","密码") 
  4.  
  5. if(mysql_select_db("db_database06",$id)) 
  6. echo ""; 
  7. else 
  8. echo ('连接失败:' . mysql_error()); 
  9. mysql_query("set names gb2312"); 
  10. ?> 

主程序,将上面俩个文件包含进来,再调用一个php_page()就可完成分页,代码如下:

  1.  <?php 
  2. require_once("conn.php"); 
  3. require_once("function.php"); 
  4. php_page("tb_insert",3,$_GET[page]); // "tb_insert"是表名,3是在每页要显示的记录数,$_GET[page]是page的id,直接用就可以了。  
  5. ?>  

上面的一种是文字分页,比如说上一页,下一页之类的,还有一种数字分页,像1,2,3...之类的,这个比较简单,前者稍微复杂些,最后一种是他们2者结合,代码如下:

  1. --> 1 //获取当前页数 
  2.          if(isset($_GET['page'])){ 
  3.              $page = intval($_GET['page']); 
  4.          } 
  5.          else { 
  6.              $page=1; 
  7.          } 
  8.          $PageSize = 1; //每页的记录数量 
  9.          // 获取总数量 
  10.          $sql = "select count(*) from blog"; 
  11.          $result = mysql_query($sql); 
  12.          $row = mysql_fetch_row($result); 
  13.          $amount = $row[0]; 
  14.          /*计算总页数 
  15.          if($amount){ 
  16.              if($amount<$PageSize) { //如果总数量小于每页的记录数量$PageSize,那么只有一页. 
  17.                  $PageCount = 1; 
  18.              } 
  19.              if($amount%$PageSize) { //总数量除以每页的记录数量取于 
  20.                  $PageCount =& amp;nbsp;(int)($amount/$PageSize)+1;//如果有于,则页数等于总数量除每页的记录数加1 
  21.              } 
  22.              else{ 
  23.                  $PageCount =& amp;nbsp;$amount/$PageSize;//没有,则结果是页数 
  24.              } 
  25.          } 
  26.          else{ 
  27.              $PageCount = 0; 
  28.          }*/ 
  29.          $PageCount = ceil($amount/$PageSize);//总页数=总数量除以每页数量  如果有小树,则进位< span style="color: #008000;"> 
  30.          if($Page>$PageCount|$page==0){// 如果当前页数大于总页数 
  31.              echo "不能发现此页!"; 
  32.              exit(); 
  33.          } 
  34.         
  35.          //翻页链接 
  36.          $PageOut = ''; 
  37.          if($page==1){//如果页数只有一页 
  38.              $PageOut .= '第一页|上一页'; 
  39.          } 
  40.          else{ 
  41.              $PageOut .= '<a href="index.php?page=1">第一页& lt;/a>|<a href="index.php?page='.($page-1).'">上一页</a>|'; 
  42.          } 
  43.          if($page==$PageCount||$PageCount==0){//如果当前页等于总也数 
  44.              $PageOut .= '下一页|尾页'; 
  45.          } 
  46.          else{ 
  47.              $PageOut .=  '<a href="index.php?page='.($page+1).'">下一页</a>|<a href="index.php?page='.$PageCount.'">尾页</a>'; 
  48.          } 
  49.          //获取数据 
  50.          if($amount){ 
  51.          $sql="select * from blog limit ".($page-1)*($PageSize).",$PageSize"; 
  52.          $result=mysql_query($sql); 
  53.          while($row=mysql_fetch_array($result)){//此段代码只是示例 
  54.              $blogs[] = array('bid'=>$row['bid'],'title'=>$row['title']); 
  55.              foreach ($blogs as $blog){ 
  56.              $title=$blog['title']; 
  57.              } 
  58.              $output = "<a href=index.php?action=blog_del&bid=$blog[bid]>删除</a>". 
  59.              "<a href=index.php?action=blog_edit&bid=$blog[bid]>编辑</a>". 
  60.              "<a href=index.php?action=blog_view&bid=$blog[bid]>查看</a>"; 
  61.              include("template/default/blog.tpl.php"); 
  62.              echo $PageOut; 
  63.          } 
  64.          for($i=1;$i<=$PageCount;$i++){//数字分页 
  65.             $Pageshow = ($i!=$page)?"<a href='index.php?page=".$i."'>$i</a>":"<b>$i</b>"; 
  66.             echo $PageShow; 
  67.           } 
  68.           echo $amount.'条记录,每页'.$PageSize.'条,共'.$PageCount.'页'; 
  69.          } 

Tags: php分页 实现代码

分享到: