php+mysql分页优化版

  1 <?php 
  2     include('conn/conn2.php');
  3     $pagesize=5;
  4     $url=$_SERVER["REQUEST_URI"];//取当前url路径
  5     $url=parse_url($url); //查询当前路径所以值
  6     $url=$url[path];//查询当前路径path的值
  7     
  8     $numq=mysql_query("select * from tb_article");
  9     $num=mysql_num_rows($numq);  //总数
 10     
 11     if($_GET[page]){
 12         $pageval=$_GET[page];        //获取当前页
 13         $page=($pageval-1)*$pagesize; //从第几条记录开始
 14         $page.=',';    
 15     }
 16     
 17     $pageceil=ceil($num/$pagesize); //共有几页记录
 18     
 19     $sql="select * from tb_article order by now desc limit $page $pagesize";
 20     $query=mysql_query($sql);
 21     
 22     while($res_article=mysql_fetch_array($query)){
 23 ?>
 24     <div id="center_centent">
 25    
 26      <a href="user_article.php?id=<?php echo $res_article['id'];?>">
 27   <h2> <div id="center_content_title"><?php echo csubstr($res_article['title'],0,100);?></div></h2></a>
 28     
 29     
 30      <span><?php echo csubstr($res_article['content'],0,305)."...";?></span>
 31    <a href=""> <div id="center_content_more">继续阅读>></div></a>
 32     
 33     <hr />    
 34     <div id="author_time" >
 35     <span>作者:<?php echo $res_article['author']; ?></span>
 36     
 37       <span>时间:<?php echo date("m,d ⊙ H:i:s",strtotime($res_article['now'])) ?></span>
 38      <span> 标签:[<a href="javascript:void(0)"><?php echo $res_article['classify'] ?></a>]</span>
 39     </div>
 40     </div>
 41     
 42     <br />
 43     <?php 
 44         }
 45       ?>
 46 <div id="fenyebg"></div>
 47 <div class="fenye"> 
 48 <?php 
 49     
 50     if($num>$pagesize){        
 51         if($pageval<=1){    
 52         $pageval=1;    //当前页<1,则重置当前页为1
 53         echo "<div><<</div>";
 54         }else
 55         echo "<a href=$url?page=1><div><<</div></a>";
 56         
 57         if($pageceil>7){    //如果记录页数超过7页,则执行以下
 58         
 59         if($pageval>3){
 60             for($i=$pageval-3;$i<=$pageval+3&&$i<=$pageceil-3;$i++){
 61                 if($i==$pageval){   //判断如果是当前页,则显示当前页的$i不能被点击
 62                 echo "<div id='dangqian'>$i</div>";
 63             }else
 64             echo "<a  style='border-radius:20%;box-shadow:0 1px 2px #000;' href=$url?page=".$i."><div>$i</div></a>"; //显示出除当前页,其他页的超链接
 65             }
 66         }else{
 67             
 68             for($i=1;$i<8;$i++){
 69             if($i==$pageval){   //判断如果是当前页,则显示当前页的$i不能被点击
 70                 echo "<div id='dangqian'>$i</div>";
 71             }else
 72             echo "<a  style='border-radius:20%;box-shadow:0 1px 2px #000;' href=$url?page=".$i."><div>$i</div></a>"; //显示出除当前页,其他页的超链接
 73             }
 74         }
 75         $i=$pageceil-2;
 76         echo "<div>....</div>";
 77         for($i;$pageceil>=$i;$i++){  //判断查询出后三页并显示
 78             if($i==$pageval){   //判断如果是当前页,则显示当前页的$i不能被点击
 79                  echo "<div id='dangqian'>$i</div>";
 80             }else
 81             echo "<a style='border-radius:20%;box-shadow:0 1px 2px #000;' href=$url?page=".$i."><div>$i</div></a>"; //显示出除当前页,其他页的超链接
 82             
 83         }
 84         
 85         }else{
 86             for($i=1;$i<=$pageceil;$i++){ //如果记录页不数超过7页,则正常显示
 87             
 88             
 89             if($i==$pageval){   //判断如果是当前页,则显示当前页的$i不能被点击
 90                 echo "<div id='dangqian'>$i</div>";
 91             }else
 92             echo "<a style='border-radius:20%;box-shadow:0 1px 2px #000;' href=$url?page=".$i."><div>$i</div></a>"; //显示出除当前页,其他页的超链接
 93                 
 94             
 95             }
 96             
 97         }
 98         
 99         if($pageceil>$pageval)    //总页数大于当前页,就显示下一页
100         echo "<a href=$url?page=".($pageceil)."><div>>></div></a>";
101         
102     }
103 
104 ?>   
105  </div>  

css:

1 div.fenye{background:; text-align:center; width:650px;margin:0 -325px 0 0; right:50%; position:absolute;}
2 div.fenye div{background:; text-align:center; width:50px; height:25px; float:left;color:#FFF}
3 div.fenye div:hover{background:#FFF; text-align:center; width:50px; height:25px; float:left; color:#000;box-shadow:0 0px 15px #FFF;}
4 div#dangqian{background:#FFF;box-shadow:0 0px 15px #FFF;color:#000}
5 div#fenyebg{background:#FFF; width:800px;position:fixed; right:50%; margin:0 -400px 0 0; bottom:0; height:25px ;border-radius:5px 5px 5px;opacity:0.3;}
原文地址:https://www.cnblogs.com/mrcln/p/3776619.html