用PHP实现分页并能够实现上一页,下一页,跳转到第几页页的功能

jerry PHP 2015年08月09日 收藏
  1. <?php 
  2. $pagesize=10; //设定每一页显示的记录数
  3.  
  4. $conn=mysql_connect("localhost","root","jrq");
  5. mysql_select_db("sj",$conn);
  6. $rs = mysql_query( "select * from `dw_newsdata`",$conn); //这里有第二个可选参数,指定打开的连接
  7. //-----------------------------------------------------------------------------------------------//
  8. //分页逻辑处理
  9. //-----------------------------------------------------------------------------------------------
  10. $tmpArr = mysql_fetch_array($rs);
  11. $numAL = mysql_num_rows($rs);  //取得记录总数$rs
  12. $pages=intval($numAL/$pagesize); //计算总页数
  13.  
  14. if ($numAL % $pagesize) $pages++;
  15.  
  16. //设置缺省页码
  17. //↓判断“当前页码”是否赋值过
  18. if (isset($_GET['page'])){ $page=intval($_GET['page']); }else{ $page=1; }//否则,设置为第一页
  19.  
  20. //↓计算记录偏移量
  21. $offset=$pagesize*($page - 1);
  22.  
  23. //↓读取指定记录数
  24. $rs=mysql_query("select * from `dw_newsdata` limit $offset,$pagesize",$conn);//取得—当前页—记录集!
  25. $curNum = mysql_num_rows($rs); //$curNum - 当前页实际记录数,for循环输出用
  26. ?> 
  27. <table border="0" width="80%">
  28. <tr>
  29.  <td width="50%" bgcolor="#E0E0E0">标题</td>
  30.  <td width="50%" bgcolor="#E0E0E0">发布时间</td>
  31. </tr>
  32.  
  33. <?php
  34. while ($tmpArr = mysql_fetch_array($rs)) //提取一行,并循环判断
  35. {
  36. $i=0; 
  37.  
  38. // for($a=0;$a<$ColNum;$a++) //==for结束==
  39. ?> 
  40. <tr>
  41.  <td width="50%"><?= $tmpArr[1];  //$tmpArr["news_title"] ;  ?></td>
  42.  <td width="50%"><?php echo $tmpArr[2];  //$tmpArr["news_cont"]; ?></td>
  43. </tr>
  44.  
  45. <?php
  46.  
  47. }//==while结束==
  48. ?>
  49. </table>
  50.  
  51. <?php
  52. //============================//
  53. //  翻页显示 一               
  54. //============================//
  55. echo "<p>";  //  align=center
  56. $first=1;
  57. $prev=$page-1;   
  58. $next=$page+1;
  59. $last=$pages;
  60.  
  61. if ($page > 1)
  62. {
  63. echo "<a href='?page=".$first."'>首页</a>  ";
  64. echo "<a href='?page=".$prev."'>上一页</a>  ";
  65. }
  66.  
  67. if ($page < $pages)
  68. {
  69. echo "<a href='?page=".$next."'>下一页</a>  ";
  70. echo "<a href='?page=".$last."'>尾页</a>  ";
  71. }
  72.  
  73. //============================//
  74. //  翻页显示 二               
  75. //============================//
  76. echo " | 共有".$pages."页(".$page."/".$pages.")";
  77.  
  78. for ($i=1;$i< $page;$i++){echo "<a href='?page=".$i."'>[".$i ."]</a>  ";}  // 1-先输出当前页之前的
  79.  
  80. if ($page > 0) echo "[".$page."]";; // 2-再输出当前页
  81.  
  82. for ($i=$page+1;$i<=$pages;$i++){echo "<a href='?page=".$i."'>[".$i ."]</a>  ";}// 3-接着输出当前页之后
  83.  
  84. echo "转到第 <INPUT maxLength=3 size=3 value=".($page+1)." name=gotox> 页 <INPUT hideFocus onclick=\"location.href='?page=gotox.value';\" type=button value=Go name=cmd_goto>"; 
  85.  
  86. echo "</p>";
  87.  
  88. ?>