网站地图    收藏   

主页 > php专栏 > php分页 >

php分页实例程序函数 - php分页

来源:自学PHP网    时间:2014-11-30 14:41 作者: 阅读:次

[导读] 在php中分页是我们开发中必须要用到的东西,但在觉得在php分页比在asp中方便了很多,下面我来给各位同学详细介绍人几个不错的php分页类吧,这是我自己写的一个php分页实例,代码如下:ht...

php分页实例程序函数

在php中分页是我们开发中必须要用到的东西,但在觉得在php分页比在asp中方便了很多,下面我来给各位同学详细介绍人几个不错的php分页类吧,这是我自己写的一个php分页实例,代码如下:

  1. <html> 
  2. <head> 
  3.     <title>简单的PHP分页程序</title> 
  4. </head> 
  5. <body> 
  6. <?php 
  7.     //建立连接数据库 
  8.     $linkID=@mysql_connect("phpfensi.com","root","") or die("you could notconnect mysql"); 
  9.     //连接的数据库名称 
  10.     @mysql_select_db("ceshi") or die("could not select database!"); 
  11.     //取得记录总数 
  12.  
  13.     $query="SELECT count(*) FROM user"; 
  14.     $rs = mysql_query($query); 
  15.     $myrows=mysql_fetch_array($rs); 
  16.     $numrows=$myrows[0]; 
  17.     //设定每一页显示的记录数 
  18.     $pagesize = 1; 
  19.     //计算总页数 
  20.     $pages=intval($numrows/$pagesize); 
  21.     if($numrows%$pagesize) 
  22.     $pages++; 
  23.     //设置页数 
  24.     if(isset($_POST['page'])) 
  25.        $page=intval($_POST['page']); 
  26.     else{ 
  27.          $page = 1; //没有页数则显示第一页; 
  28.         } 
  29.     //计算记录偏移量 
  30.     $offset = ($page-1)*$pagesize; 
  31.     //读取指定的记录数 
  32.     $query1="select * from user limit $offset,$pagesize"; 
  33.     $rs = mysql_query($query1); 
  34.     if($myrows=mysql_fetch_array($rs)) 
  35.     { 
  36.        $i = 0;    
  37. ?> 
  38. <table width="80%" border="1"> 
  39.     <tr> 
  40.         <td width="50%">用户名</td> 
  41.         <td width="50%">密码</td> 
  42.     </tr> 
  43.     <?php 
  44.         do{ 
  45.             $i++; 
  46.     ?> 
  47.     <tr> 
  48.         <td width="50%"><?php echo $myrows["username"] ?></td> 
  49.         <td width="50%"><?php echo $myrows["password"] ?></td> 
  50.     </tr> 
  51.     <?php 
  52.         } 
  53.         while($myrows=mysql_fetch_array($rs)); 
  54.         echo "</table>"; 
  55.     }   
  56.         $first = 1; 
  57.         $prev =$page-1; 
  58.         $next = $page+1; 
  59.         $last=$pages; 
  60.         if($page>1) 
  61.         { 
  62.             echo "<a href='fenye.php?page=".$first."'>首页</a>"; 
  63.             echo "<a href='fenye.php?page=".$prev."'>上一页</a>"; 
  64.         } 
  65.         if($page<$pages) 
  66.         { 
  67.             echo "<a href='fenye.php?page=".$next."'>下一页</a>"; 
  68.             echo "<a href='fenye.php?page=".$last."'>最后一页</a>"; 
  69.         } 
  70.         echo "<div align = 'center'>共有" .$pages. "页(" .$page. "/" .$pages.")"; 
  71.         for($i=1; $i<$page; $i++) 
  72.             echo "<a href='fenye.php?page=".$i."'>[".$i."]</a>"; 
  73.         echo "[" .$page. "]"; 
  74.         for($i=$page+1; $i<=$pages;$i++) 
  75.             echo "<a href='fenye.php?page=".$i."'>[".$i."]</a>"; 
  76.         echo"</div>"; 
  77.     ?>        
  78. </body> 
  79. </html> 

上面代码不能重复使用,后来整理了一个类,CSS代码如下:

  1. #pages{display:block; text-align:center; overflow:hidden; color:#000; font-size:13px} 
  2. #pages a{color:#333; text-decoration:none; font-family:Verdana,Geneva,sans-serif; padding:2px 3px; display:block} 
  3. #pages li{float:left; display:inline-block; border:1px solid #999; margin-right:3px; margin-left:3px} 
  4. #pages #spages{background:#CCC; font-weight:bold; color:#36C} 

PHP分页函数类源码如下:

  1. <?php 
  2. /* 
  3. * 分页模块 
  4. */ 
  5.  
  6. interface Page{ 
  7. public function showpage(); 
  8. } 
  9.  
  10. class AdminPage implements Page{ 
  11. /* 
  12. * 构造参数  
  13. * SQL语句,每页显示数,url 
  14. */ 
  15. private $sql; 
  16. private $pageline; //每页显示多少行数据 
  17. private $urlstr; 
  18. private $nowpage; 
  19. private $totalNum; 
  20. private $pageNum; 
  21. private $pageStr;// 形成分页字符串 
  22.  
  23. public function __construct($sql,$p){ 
  24. $this->sql = $sql; 
  25. $this->pageline = $p; 
  26. $this->urlstr = $_SERVER['SCRIPT_NAME']; 
  27. if(emptyempty($_GET['p'])){ 
  28. $this->nowpage = 1; //初始化当前页数为1 
  29. }else if(is_numeric($_GET['p'])){ 
  30. $this->nowpage = $_GET['p']; 
  31. }else{ 
  32. $e = new Error(6); 
  33. $e->show(); 
  34. } 
  35.  
  36. $s = new Sql(); 
  37. $this->totalNum = $s->results_exist_num($this->sql); 
  38. $this->pageNum = ceil($this->totalNum/$this->pageline); 
  39.  
  40. } 
  41. /* 
  42. * 形式为: 
  43. * 首页| 上一页| 1 | 2 | 3 | 4 | 5 |下一页 | 末页  
  44. * 
  45. * 
  46. */ 
  47.  
  48. public function showpage(){ 
  49. if($this->pageNum >=1 && $this->nowpage <5 ){ 
  50.  
  51. if( $this->pageNum <=5){ 
  52.  
  53. $this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首页</a></li>'; 
  54. if($this->nowpage!=1){ 
  55. $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一页</a></li>'; 
  56. }  
  57. for($i=1;$i<=$this->pageNum;$i++){ 
  58. if($i==$this->nowpage){ 
  59. $this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>'; 
  60. }else{ 
  61. $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>'; 
  62. } 
  63. } 
  64. if($this->nowpage !=$this->pageNum){ 
  65. $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一页</a></li>'; 
  66. } 
  67.  
  68. $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末页</a></li>'; 
  69. echo $this->pageStr; 
  70.  
  71. }else if($this->pageNum>5){ 
  72.  
  73. $this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首页</a></li>'; 
  74. if($this->nowpage !=1){ 
  75. $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一页</a></li>'; 
  76. } 
  77.  
  78. for($i=1;$i<=5;$i++){ 
  79. if($i==$this->nowpage){ 
  80. $this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>'; 
  81. }else{ 
  82. $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>'; 
  83. } 
  84. } 
  85. if($this->nowpage !=$this->pageNum){ 
  86. $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一页</a></li>'; 
  87. } 
  88.  
  89. $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末页</a></li>'; 
  90. echo $this->pageStr; 
  91. } 
  92.  
  93. }else if($this->nowpage <= $this->pageNum -2 && $this->nowpage>=5){ 
  94. $this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首页</a></li>'; 
  95. $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一页</a></li>'; 
  96. for($i=$this->nowpage-2;$i<=$this->nowpage+2;$i++){ 
  97. if($i==$this->nowpage){ 
  98. $this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>'; 
  99. }else{ 
  100. $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>'; 
  101. } 
  102. } 
  103. $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一页</a></li>'; 
  104. $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末页</a></li>'; 
  105. echo $this->pageStr; 
  106.  
  107. }else if($this->nowpage>=$this->pageNum-3 && $this->nowpage <=$this->pageNum){ 
  108.  
  109. $this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首页</a></li>'; 
  110. $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一页</a></li>'; 
  111.  
  112. for($i=$this->pageNum-4;$i<=$this->pageNum;$i++){ 
  113. if($i==$this->nowpage){ 
  114. $this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>'; 
  115. }else{ 
  116. $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>'; 
  117. } 
  118. } 
  119. if($this->nowpage !=$this->pageNum){ 
  120. $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一页</a></li>'; 
  121. } 
  122.  
  123. $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末页</a></li>'; 
  124. echo $this->pageStr; 
  125.  
  126. } 
  127. } 
  128. } 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论