首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用单个sql查询的PHP分页

使用单个sql查询的PHP分页
EN

Stack Overflow用户
提问于 2018-08-19 03:49:10
回答 1查看 261关注 0票数 2

我试图用单个php sql查询来归档分页,因为我觉得运行两次select语句太麻烦了,因为我想对我的数据进行分页,我已经尝试了查询函数(*)count

我已经尝试了设置一个限制,如果number_of_rows等于我的限制,我会自动分页两页,但我不能确定到第三页,所以这不是一个好的方法。

我正在考虑的另一种方法是获取所有数据,然后使用java脚本进行分页,但我不知道如何做到这一点,所以我尝试用php,但如果可能的话,我想学习如何用java脚本来做这件事。

我只想运行一次查询并分页,谢谢你的帮助

下面是我的代码:

   <?php
    //count rows in table
    $query= "SELECT * FROM $database.$table WHERE `id` <> '$id'";
    $result= mysqli_query($conn, ($query));

    $results_per_page =30;

    //calculate total pages
    if($result)
    {
        $num_row = mysqli_num_rows($result);
        mysqli_free_result($result);
        $total_pages = ceil($num_row / $results_per_page);
    }   

    //to get page value
    if(isset($_GET["page"])){ 
        $page =$_GET["page"]; 
    } else{ 
        $page=1; 
    };
    $start_from = ($page-1) * $results_per_page;
    $start_from_here = mysqli_real_escape_string($conn, stripslashes($start_from));
    $start_from_here = filter_var($start_from_here, FILTER_SANITIZE_NUMBER_INT );

    //get data to display
    $query1= " SELECT * FROM $database.$table 
                WHERE `id` <> '$id' 
                ORDER BY type ASC 
                LIMIT $results_per_page OFFSET $start_from_here  ";
    $result1= mysqli_query($conn, ($query1));

我的html分页代码是这样的:

<?php
    if(isset($total_pages) && ($total_pages>1)) {   
        $url="http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
        $url=strtok($url, '?');

        for ($i=1; $i<=$total_pages; $i++) {   
        //Print links for all pages
            echo "<a class='pagination' href='".$url."?page=".$i."'>".$i."</a>";
        }
    }
    ?>

谢谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2018-08-19 05:40:53

在一个查询中同时做这两件事是不可能的。可以通过执行以下操作来优化聚合

SELECT COUNT(1) AS row_count
FROM database.table_name
WHERE `id` <> YOUR_ID_HERE

然后,您可以使用row_count变量来执行关于总页数和限制的所有计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51912060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档