【问题标题】:Pagination in PHPPHP中的分页
【发布时间】:2013-06-23 18:32:03
【问题描述】:

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

请帮忙。 谢谢!

【问题讨论】:

  • 可能会建议一些 jQuery / AJAX 解决方案。您的目标是最初通过 PHP/MySQL 加载更少的数据,还是让内容在视觉上更吸引用户?
  • 让事物在视觉上更吸引用户。
  • 你发现了吗?我有页面功能,但我仍然不知道如何在底部有页面链接。

标签: php


【解决方案1】:

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

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

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

因此,假设您在每个页面中有 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 的所有项目。

希望阅读完这篇文章后你能理解分页背后的逻辑,如果你需要代码方面的帮助,请再次告诉我们。

【讨论】:

  • 非常感谢您!我明白了逻辑,我要看看我是否能自己编写代码。如果我被卡住了,我会向你寻求帮助!再次感谢!
  • 好的,所以我尝试自己编写代码。结果的第一页正确加载,但页面链接给我这个:“在此服务器上找不到请求的 URL /headfirst_phpmysql/guitarwars/index.php&page=3。此外,尝试使用时遇到 404 Not Found 错误处理请求的 ErrorDocument。”我不知道如何在 cmets 中引用代码,所以我可能会作为一个单独的问题来做。
【解决方案2】:

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

这里有一个提示,

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

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

【讨论】:

    【解决方案3】:

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

    为此,您需要通过 url 传递值,并根据 url 中传递的限制值更改 sql 脚本。

    需要考虑的事项: SQL 限制 - 这是您将收到的结果数量。 页码 - 这是返回结果的页面。 排序 - 这是在分页中返回结果的方式。 页面链接 - 页面列表。这是通过将您的结果数除以限制并取底数得出的。

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      • 我做到了并且很高兴我做到了。谢谢你的建议!
      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-04
        • 2016-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多