【问题标题】:Large PHP Arrays pagination大型 PHP 数组分页
【发布时间】:2013-01-07 23:57:46
【问题描述】:

我有一个包含超过 10k 个结果的数组(由 MySQL 查询生成),我想知道对它进行分页的最佳做法是什么?先提取所有数据,然后将其拆分为页面,还是有另一种更快/最好的方法?

【问题讨论】:

标签: php mysql pagination


【解决方案1】:

使用 MySQL 的 LIMIT 语法仅在数据库到达您的 PHP 代码之前从数据库中检索所需的结果。

类似这样的:

$offset = 0;
$per_page = 25;

$query = "SELECT * FROM `blah` LIMIT $offset, $per_page";

...

【讨论】:

    【解决方案2】:

    按照建议,您可以使用LIMIT。要找出结果总数,您可以选择执行以下操作:

    SELECT SQL_CALC_FOUND_ROWS * FROM `table` ... LIMIT 0, 20
    

    然后:

    SELECT FOUND_ROWS() AS `total_results`
    

    检索分页器的最大页码。

    【讨论】:

    【解决方案3】:

    显示这么多记录的分页导航链接,请考虑使用“对数”页面导航。见这里:

    How to do page navigation for many, many pages? Logarithmic page navigation

    【讨论】:

      【解决方案4】:

      您可能需要在提取内容之前执行 COUNT() 查询以确定总共有多少行。找出你需要多少页的一般算法是

      ceil(totalRows / rowsPerPage)

      【讨论】:

        猜你喜欢
        • 2015-09-09
        • 1970-01-01
        • 1970-01-01
        • 2011-12-26
        • 1970-01-01
        • 2015-09-28
        • 2011-08-10
        • 2018-11-20
        相关资源
        最近更新 更多