我希望我没有写重复,但我没有找到任何可以回答我的问题的东西。 (虽然在我看来这是很常见的问题。)

这个问题几乎出现在每个 Web 项目中:您有一个包含许多条目的表格,并希望它们显示在单个页面上。

现在我想知道计算特定表行集所需页数的最佳方法是什么。

这是我一直在考虑的一些方法。我想得到一些关于它们有多有效的回应。我将给出特定于 PHP 的示例,但我敢打赌在其他语言中也有类似的技术。

  • 可能最好的方法是静态保存页数并在每次添加新条目时修改该值。 (尽管如此......我正在寻找一个动态解决方案:-))
  • 对感兴趣的行执行 SELECT COUNT(*) 并在每次显示页面时计算页码。
  • 做一个普通的选择来获取所有行的结果集。现在不要通过调用 mysql_fetch_row 左右加载行,而是使用 mysql_num_rows 获取行数。 (因为我不知道这是如何实现的,所以我不能说它是否有效。有谁知道?)然后我可以轻松地移动结果集指针。 (对于 mysqlimysql_data_seek ,但原生 MySQL 扩展没有类似的功能。因此我认为这只是 mysqli 的一些缓冲行为)

  • 谁能说一下如何最有效地计算行数(页数)?

    最佳答案

    数字 2 是最常见的模式

    select count(*) from [Table] where [Expressions]
    

    然后
    select [Columns] from [Table] where [Expressions] limit [Pagesize] offset [Pagenum*Pagesize-Pagesize]
    

    这将为您提供整个结果集的总行数,但仅提供当前页面的行数据。

    许多框架或 CMS 都有在 session 中缓存此数据的某些部分的约定,您可能希望也可能不想这样做,具体取决于您预期的表大小、数据的易变性等。

    关于php - 如何最有效地确定 "number of pages"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/655847/

    10-12 00:20
    查看更多