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

php分页实例程序函数

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-18 11:19:45 浏览: 评论:0 

在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:blocktext-align:centeroverflow:hiddencolor:#000font-size:13px
  2. #pages a{color:#333text-decoration:nonefont-family:Verdana,Geneva,sans-serifpadding:2px 3pxdisplay:block
  3. #pages li{float:leftdisplay:inline-blockborder:1px solid #999margin-right:3pxmargin-left:3px
  4. #pages #spages{background:#CCCfont-weight:boldcolor:#36C

PHP分页函数类源码如下:

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

Tags: php分页实例程序函数

分享到: