我希望我没有写重复,但我没有找到任何可以回答我的问题的东西。 (虽然在我看来这是很常见的问题。)
这个问题几乎出现在每个 Web 项目中:您有一个包含许多条目的表格,并希望它们显示在单个页面上。
现在我想知道计算特定表行集所需页数的最佳方法是什么。
这是我一直在考虑的一些方法。我想得到一些关于它们有多有效的回应。我将给出特定于 PHP 的示例,但我敢打赌在其他语言中也有类似的技术。
SELECT COUNT(*)
并在每次显示页面时计算页码。 mysql_fetch_row
左右加载行,而是使用 mysql_num_rows
获取行数。 (因为我不知道这是如何实现的,所以我不能说它是否有效。有谁知道?)然后我可以轻松地移动结果集指针。 (对于 mysqli
有 mysql_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/