• php分页


    <?php
    //1.连接数据
    include "connect.php";

    /*-------------定义一个分页函数,主要用于生成分页按钮-----------------------------*/
    function page($pages,$cur_page,$base_url){
     /*参数说明:  $pages :    总页面数
           $cur_page: 当前第几页
           $base_url:  当前的基本url例如 www.baidu.com/index.php?id=34&page=3
                  取  www.baidu.com/index.php?id=34
      返回值(String类型):  一连串的页面数
     
     */
     
     //1.定义首页,上一页,下一页,尾页
     $first=1;  //首页
     $prev=$cur_page-1;
     $next=$cur_page+1;
     $last=$pages;
     if($prev==0){ $prev=1;} //如果上一页为0则改为1
     
     //2.组织分页按钮的html代码
     //2.1显示首页跟上一页的按钮
     $page_str='';
     if($cur_page>1){
      $page_str.="<a href='?page=$first'>首页</a> <a href='?page=$prev'>上一页</a>";
     }else{
      $page_str.="首页 上一页";
     }
     
     
     //2.2 显示数字----------12345--3456789------------------------------
     $page_nums=4;   //页栏显示的页面数
     //找起始页
     /*if(($cur_page-1)%$page_nums==0){
      //a.如果当前能被整除,则直接设为起始页
      $start_page=$cur_page;
      
     }else{
      //b.如果不能被整除,则用其它的方法找到起始页  8=>5   10 => 9
      
      $start_page=floor(($cur_page-1)/$page_nums)*$page_nums+1;
      
     }*/
     
     $start_page=floor(($cur_page-1)/$page_nums)*$page_nums+1-2;   //(公式)页栏起始显示的页数
     $end_page=$start_page+$page_nums+2; //页栏最后显示的页数
     for($i=$start_page;$i<=$end_page;$i++){
      
      if($i>$pages){
       //超出正常范围的页面不予显示
       continue;
      }
      if($i<1){
       $end_page++;
       //超出正常范围的页面不予显示
       continue;
      }
      //---end -------显示数字部分------------------------------
      
      
      
      
      
      //通过循环显示所有页栏该显示的页面数
      if($cur_page==$i){
       //如果是当前页则不加链接
       $page_str.=" $i";  
      }else{
       $page_str.=" <a href='?page=$i'>$i</a>";
      }

      
     }
     
     
     
     
     
     
     
     //2.3显示下一页跟尾页
     if($cur_page<$pages){
      $page_str.=" <a href='?page=$next'>下一页</a> <a href='?page=$last'>尾页</a>"; 
     }else{
      $page_str.=" 下一页 尾页";
     }

     echo $page_str;  //输入分页按钮的html
    }
    /*-----------end--定义一个分页函数,主要用于生成分页按钮-----------------------------*/

    //1.配置参数
    $pagesize=2;     //每页显示的条数

    //2.当前页面
    if(isset($_GET['page'])){
     $cur_page=intval( $_GET['page']);
    }else{
     $cur_page=1;  //默认第一页
    }

    //3.获取总页面数
    $rs=mysql_query('SELECT count(*) as num FROM liuyan');
    $row=mysql_fetch_array($rs);
    $rows=$row['num'];  //总行数
    $pages=ceil($rows/$pagesize);  //进一位取整,得到总页数


    //4.查出当前页面指定的数据,limit 0,20
    $offset=($cur_page-1)*$pagesize;  //获取查询的起始位置
    $sql="SELECT * FROM liuyan limit $offset, $pagesize";
    $rs=mysql_query($sql);
    $i=1*$offset;
    while($row=mysql_fetch_array($rs)){
      echo '第'.$i.'条:';
      echo 'ID:'.$row['id'];
      echo '<br/>';
      echo '内容:'.$row['content'];
      echo '<br/>'; 
      echo '------------------------------------------------------------------';
      echo '<br/>'; 
      echo '<br/>'; 
      $i++;
    }

    //5.输出分页按钮
    page($pages,$cur_page,$base_url='');
    $str="&nbsp;&nbsp;当前第 $cur_page 页 共 $rows 条记录 共 $pages 页";
    echo $str;

    ?>

    尾页显示还有些问题只能显示3页,希望大虾们给点意见

  • 相关阅读:
    (转载) 天梯赛 L2-018. 多项式A除以B
    天梯赛 L2-007. (并查集) 家庭房产
    天梯赛 L2-013. (并查集) 红色警报
    天梯赛 L2-002. (模拟) 链表去重
    28. Implement strStr() (C++)
    27. Remove Element(C++)
    26. Remove Duplicates from Sorted Array(C++)
    19. Remove Nth Node From End of List(C++)
    21. Merge Two Sorted Lists(C++)
    20. Valid Parentheses(C++)
  • 原文地址:https://www.cnblogs.com/lovely/p/2526155.html
Copyright © 2020-2023  润新知