4

我正在尝试编写一个从 mySQL 数据库返回行的脚本。基本上,我网站上的用户会收到“经验值”,并根据他们获得的经验值来提升“排名”。

我有一个名为“recentexp.php”的页面,其中所有最近的 exp 都显示在表格中,最新的在顶部。

如何编写代码来创建更多页面,返回更多结果?

如果少于 10 行,则没有页码,仅显示第 1 页。但是,如果返回 12 行,则在我的页面上显示最近的 10 行(最最近的在顶部),然后让 PHP 创建一个页面“2”,放置最旧的 2 行。

如果我解释得不好,我很抱歉。我筋疲力尽……漫长的一天。

谢谢!

4

1 回答 1

11

您可以使用之后LIMIT x, y显示y结果x

假设您有一个$page通过$_GET或通过其他方式传递的变量。$page默认为 1,或者是表示页码的数值。

然后,您可以通过以下方式选择该页面的行:

SELECT * FROM `table` WHERE `condition` = ? LIMIT ($page - 1) * 10, 10

您可以将 10 替换为每页的结果数。如您所见,如果页码为 1,则此查询为:

SELECT * FROM `table` WHERE `condition` = ? LIMIT 0, 10

显示前 10 个结果。如果页码为 2,则此查询为:

SELECT * FROM `table` WHERE `condition` = ? LIMIT 10, 10

它显示第 10 行之后的 10 行,即第 11-20 行(应该在第 2 页上!)

于 2012-04-09T02:01:31.597 回答