PHP中的分页

时间:2011-08-05 23:49:17

标签: php

我有一个页面,提供供用户下载的文件列表。 那里可以有数百个文件,我想将它们分解成多个页面,并为用户提供逐页查看或者将它们全部显示在一个页面中的选项。 我从来没有做过这样的事情,也不知道怎么做。

请帮忙。 谢谢!

5 个答案:

答案 0 :(得分:14)

好的,我也有过一次这个问题。这基本上是分页背后的逻辑,我不打算编写代码,但如果你需要它,请告诉我们。

基本上,您需要两个值来创建分页,限制和偏移。

  • 限制是您同时显示的项目数量。
  • 偏移量是您开始查询的位置。

所以,假设你每页有5个项目,共有25个项目。

在您的查询中,您必须限制5,0(项目数量和查询将开始的位置)。

现在,如果你除以5(限制)/ 25(总数),你将获得5(页数)。

现在在第0页(开始),您可以通过将页码乘以限制来获得偏移量,因此0(页面)* 5(限制)给出0(在第一页中从偏移量0开始)

现在在第3页中,你将3(页面)* 5(限制)乘以它给你15,这意味着在第3页(如果你考虑到你实际上从第0页开始,则为4)你将从抵消16至20。

最后在第4页(对于您的用户将是第5页,因为他们从第1页开始,而不是第0页),您将从偏移21到25显示,这些是查询中的所有项目。

我希望在阅读完本文后,您了解分页背后的逻辑,如果您需要有关代码的帮助,请再次告诉我们。

答案 1 :(得分:2)

您的文件名是否来自数据库?如果是这样,请查看查询中的OFFSET和LIMIT过滤器。如果没有,请尝试计算您拥有的文件数量,将它们分成块,然后当您转到下一页时,让它知道从哪里开始。

这是一个提示,

print "<a href='page.php?offset=$offest&limit=$limit'> Next </a>"

最好自己尝试编写,分页是PHP应用程序的基本功能。

答案 2 :(得分:2)

对于从未做过这类事情的人来说,学习并不会有什么坏处。

为了做到这一点,你需要通过url传递值,并根据url中传递的限制值更改sql脚本。

需要考虑的事项: SQL限制 - 这是您将收到的结果数量。 页码 - 这是返回的结果页面。 排序 - 这是在分页中返回结果的方式。 页面链接 - 页面列表。这可以通过获取结果编号除以限制并将数字放在一起来找到。

创建分页的难点在于使其可扩展,并且能够与其他信息列表(如注释或用户列表)一起使用。

答案 3 :(得分:1)

也许你试着写一个?这是非常容易编写的内容,并且您不会链接到某些代码,这些代码可能会被编写为质量不佳的代码或其他可能在一段时间内被弃用的其他代码或框架。

我知道这不是这个问题的解决方案,但这是我读这个主题的第一个想法。

答案 4 :(得分:1)

首先你可以尝试自己编写。 或者,您可以使用Smarty(一个非常着名的PHP演示框架)以及pagination plugin