php - mysql分页结果

标签 php mysql pagination

查询是:

SELECT * FROM `news` ORDER BY `id` LIMIT ($curr_page * 5), ( ($curr_page * 5) + 5 )

其中 $curr_page 是一个 php 变量,它从 $_GET['page'] 获取值

我想分页(每页 5 条新闻),但我不知道为什么 mysql 会返回额外的值。

在第一页上结果正常:$curr_page = 0

查询将是:

SELECT * FROM `news` ORDER BY `id` LIMIT 0, 5

但在第二页上,查询结果添加了额外的新闻,10 条而不是 5 条。

第二页查询:

SELECT * FROM `news` ORDER BY `id` LIMIT 5, 10

怎么了?为什么结果有 10 个值而不是 5 个?

谢谢!

最佳答案

LIMIT 语句的语法是:

LIMIT [START_ROW], [COUNT]

所以,你的代码应该是:

SELECT * FROM `news` ORDER BY `id` LIMIT ($curr_page * 5), 5

想要添加,但不知道表的结构:通常“新闻”按发布日期而不是 ID 排序。如果表中有发布日期字段,那么它会产生比 id 更合适的排序列,这对用户来说毫无意义。假设id是自动递增的,您输入文章的顺序可能并不总是反射(reflect)正式的发布日期。

文档

关于php - mysql分页结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11364869/

相关文章:

mysql - 从不同的表中选择数据

java - 使用 MySQL 和 Java

mongodb - 具有分页数据和总计的 Mongo 聚合

jquery - 将Class添加到特定元素

php - 无法使用 Composer 加载自定义文件

php - 如何在按下 "next"按钮后更新 MySQL 数据?

php - 错误: Extra content at the end of the document Below is a rendering of the page up to the first error

php - SQL语句给我一个错误,虽然看起来很好

java - 将图像存储在 mysql 中并检索它

php - Joomla分页列表限制值