zoukankan      html  css  js  c++  java
  • 类似百度的分页的函数

    //分页
    //先设置当前选中的页码数
    $pageNum = isset($_GET['num'])? $_GET['num']:1;
    //定义每一页需要显示的记录数
    $rowsPerPage = 5;
    //查询总记录数
    $sql = "select count(*) from reply where rep_pub_id = $pub_id" ;
    $result = my_query($sql);
    $rows_num = mysql_fetch_row($result);
    $rowCount = $rows_num[0];//总记录数

    //计算总页数
    $pages = ceil($rowCount/$rowsPerPage);

    //拼凑出页码字符串
    $strpage = '';
    //拼凑出首页
    $strpage .="<a href='./show.php?pub_id=$pub_id&action=reply&num=1'>首页</a>";
    //拼凑出上一页
    $preNum = $pageNum == 1 ? 1:$pageNum-1;
    $strpage .="<a href='./show.php?pub_id=$pub_id&action=reply&num=$preNum'>上一页</a>";

    //仿百度分页中间数字部分
    //确定显示的初始页$starNum
    if($pageNum <= 3){
    $starNum = 1;
    }else{
    $starNum = $pageNum-2;
    }
    //确定初始页的最大值
    if($starNum >= $pages-4){
    $starNum = $pages-4;
    }
    //防止页码出现负值
    if($starNum <=1){
    $starNum =1;
    }
    //确定显示的最后一页$endNum
    $endNum = $starNum + 4;
    //防止最后一页出现越界
    if($endNum >=$pages){
    $endNum =$pages;
    }
    //拼凑出中间的数字页码
    for($i=$starNum;$i<=$endNum;$i++){
    //加css效果
    if($i == $pageNum){
    $strpage .= "<a href='./show.php?pub_id=$pub_id&action=reply&num=$i'><font style='text-decoration:underline;color:red;'>$i</font></a>";
    }else{
    $strpage .= "<a href='./show.php?pub_id=$pub_id&action=reply&num=$i'>$i</a>";
    }
    }

    //拼凑出下一页
    $nextNum = $pageNum == $pages ? $pages:$pageNum+1;
    //如果一条数据都没有就默认为1
    $nextNum = $pages == 0 ? 1:$pageNum+1;
    $strpage .="<a href='./show.php?pub_id=$pub_id&action=reply&num=$nextNum'>下一页</a>";
    //拼凑出尾页
    //如果一条数据都没有就默认为1
    $pageend = $pages == 0 ? 1:$pages;
    $strpage .="<a href='./show.php?pub_id=$pub_id&action=reply&num=$pageend'>尾页</a>";
    #分页到此结束
    //偏移量
    $offset = ($pageNum-1) * $rowsPerPage;
    // 7, 提取回复者的信息
    $rep_sql = "select * from reply where rep_pub_id=$pub_id order by rep_time limit {$offset},{$rowsPerPage}";

    其中连接部分可根据实际情况更改。

  • 相关阅读:
    如何提高PHP执行效率
    PHP MySQL 预处理语句
    CDN拾遗
    Rendering React components to the document body
    模拟select,隐藏下拉列表的几种实现
    前端数据范式化
    其实我们可以少写点if else和switch
    [译]the cost of javascript in 2018(1)
    provisional headers are shown 知多少
    f5到底刷新了点什么,你知道吗
  • 原文地址:https://www.cnblogs.com/zzmgg/p/6129404.html
Copyright © 2011-2022 走看看