mySQL数据库查询LIMIT help ...如果返回的行数超过'x',如何创建页面?

Hug*_*ier 4 php mysql sql database limit

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

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

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

如果少于10行,则没有页码,只显示第1页.但是,如果有12行返回,则在我的页面上有最近的10行(最近的MOST),然后让PHP创建一个页面"2",其中放置了最旧的2行.

如果我解释得很严重,我道歉.我筋疲力尽......漫长的一天.

谢谢!

Log*_*man 11

您可以用它LIMIT x, y来显示y结果x.

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

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

SELECT * FROM `table` WHERE `condition` = ? LIMIT ($page - 1) * 10, 10
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM `table` WHERE `condition` = ? LIMIT 0, 10
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM `table` WHERE `condition` = ? LIMIT 10, 10
Run Code Online (Sandbox Code Playgroud)

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

  • 不,第二个数字(在我的第一个例子中是`y`)是第一个数字后面的行数(`x`).这两个数字不是行本身的范围.为清晰起见,让我们使用两个不同的数字:`LIMIT 10,15`表示在第10行之后获得接下来的15行,因此它将返回11-25行. (2认同)