php常用模块-分页显示查询结果
admin
2023-01-28 03:53:38
0

PHP 常用模版-分页显示查询所得结果
要点:
1.统计返回结果数
2.单页显示结果数

// 根据搜索结果呈现分页效果
//函数1 查询结果总数统计
function build_query($id) {
$search_query = "SELECT DISTINCT * FROM niao WHERE id = $id";

  return $search_query;

}

//函数2 此函数基于当前页和页数生成导航页链接
function generate_page_links($id, $cur_page, $num_pages) {
$page_links = '';

// 如果此页不是第一页,则生成“上一页”链接
if ($cur_page > 1) {
  $page_links .= '
  • «
  • '; } else { $page_links .= '
  • '; } // 循环浏览生成页码链接的页面 //考虑页数可能太多导致的导航链接层叠 $cur_page 当前页码 if($cur_page<8){//页数少于5就从1~5排列页链接 $i=1; } else{ $i= $cur_page-2; //大于5 考虑每页保留前两页链接 } $c_page = $cur_page;//当前页 $z_page = $c_page+6;//最大呈现页数控制 for ($i; $i <= $num_pages && $c_page<=$z_page; $i++,$c_page++) { if ($cur_page == $i) { $page_links .= '
  • '.$i.'
  • '; } else { $page_links .= '
  • ' . $i . '
  • '; } } // 如果此页不是最后一页,则生成“下一页”链接 if ($cur_page < $num_pages) { $page_links .= '
  • '; } else { $page_links .= '
  • '; } return $page_links;

    }

    // 主程序部分
    //GET验证 返回$id
    require_once('get0.php');

    // 计算分页信息
    //根据获取的$_GET['page']判断页数,如果未获取设定为第一页
    $cur_page = isset($_GET['page']) ? $_GET['page'] : 1;
    $results_per_page = 15; // 每页结果数
    //计算结果页上页第一行行号
    $skip = (($cur_page - 1) * $results_per_page);

    // 链接数据库
    require_once('sql.php');
    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
    or die('Error connecting to MySQL server.');

    // 查询获取结果总数
    $query = build_query($id);
    $result = mysqli_query($dbc, $query);
    $total = mysqli_num_rows($result); //统计返回的结果总数
    $num_pages = ceil($total / $results_per_page);//总数除以每页结果数,计算得页数,然后对结果向上取整数

    //再次查询获取结果子集
    $query = $query . " LIMIT $skip, $results_per_page";
    $result = mysqli_query($dbc, $query);
    while ($row = mysqli_fetch_array($result)) {
    #循环显示内容
    echo 'xxxx查询结果';
    }
    // 判断是否需要分页
    if ($num_pages > 1) {
    echo'

    ';
    }

    mysqli_close($dbc);
    ?>

    相关内容

    热门资讯

    德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
    理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
    白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
    人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
    医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
    天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
    卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
    男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
    商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
    过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...