在php中分页结果的最佳方法是什么?

时间:2008-09-20 19:06:01

标签: php pagination

我需要在网站上显示多页新闻 我应该使用限制在db查询中进行分页,还是在获得所有结果后在我的php脚本中进行分页?

6 个答案:

答案 0 :(得分:10)

使用限制 - 如果可以避免,则不希望将大量数据从数据库传输到脚本引擎。

答案 1 :(得分:10)

在SQL中使用限制!每一次!

否则,您丢失的数据远远超出您的需要,这会使您的脚本不必要地变慢,并且随着表中数据量的增加而导致可伸缩性问题。

限制是你的朋友!

答案 2 :(得分:2)

如果您只想使用支持此功能的DBMS,请在DBMS上执行此操作。如果您希望将来支持其他DBMS,则可以根据当前的DBMS添加一个可以处理的层。

答案 3 :(得分:2)

您可以使用一些现有的库来帮助您:

Pear :: Pager可以帮助输出,并且只将数据库流量限制为您需要的内容,您可以使用随附的示例中提供的包装器。

这是一个tutorial我只是用Google搜索了所有内容......

答案 4 :(得分:1)

除了使用LIMIT之外,我建议使用显式WHERE子句来设置偏移量,并在该列上对结果进行排序。例如:

--- First page (showing first 50 records)
SELECT * FROM people ORDER BY id LIMIT 50
--- Second page
SELECT * FROM people WHERE id > 50 ORDER BY id LIMIT 50

这进一步限制了返回到所需范围内的行数。使用WHERE方法(而不是具有单独偏移的LIMIT子句,例如LIMIT 50,50),可以有效地处理使用其他自然键的记录分页,例如按名称或按日期顺序按字母顺序排列。

答案 5 :(得分:0)

就个人而言,我会使用查询来完成它。显然,如果你处理AJAX等,这可能会改变,但只是在查询中做一个基本限制并输出结果是简单而有效的。