【问题标题】:How to fetch new records by using limit in php mysql? [duplicate]如何通过在 php mysql 中使用限制来获取新记录? [复制]
【发布时间】:2018-11-21 13:12:51
【问题描述】:

我正在制作一个无限滚动应用程序,其中将从数据库中获取记录。当用户点击“加载更多”按钮时,会调用一个函数来从数据库中检索数据。

我的问题是,当我每次运行此(以下)查询时,我都会得到相同的记录。

SELECT ArticleTitle, PreviewText, PreviewImage FROM Articles ORDER BY ID DESC LIMIT 4 

问候....

【问题讨论】:

  • 使用 LIMIT 和 OFFSET

标签: php mysql web blogs


【解决方案1】:
  • 您需要在隐藏字段中设置偏移量。
  • 点击load more时,需要获取偏移量,计算下一批并更新同一隐藏字段中的偏移量
  • 应该将新的偏移量传递给查询。

您的查询看起来像

SELECT ArticleTitle, PreviewText, PreviewImage 
FROM Articles 
ORDER BY ID DESC 
LIMIT 0, 4 

第一次偏移为0

下一次将是 5(如果您每次加载 5 条记录)

那么下次是10,以此类推

【讨论】:

  • 你能告诉我如何在没有分页的情况下动态更改偏移量的值...谢谢
  • 您可以隐藏输入字段,值为 5。显示前 5 行。单击按钮,获取该隐藏字段的值并再添加 5,第一次迭代:字段中的 5,因此将偏移 5,字段的新值将是 10 第二次迭代:字段中的 10,因此将偏移 10,字段的新值为 15,依此类推
  • $offset = 0;我可以使用 if(isset($_POST['Offset_Field_Request'])){ $offset = $offset + 4; }
  • 是的,在这种情况下似乎没问题
  • 但是一旦我发送新的 Ajax 请求,$offset 和 $Limit 的值是相同的。 IE;变量具有相同的值,并且正在获取相同的记录。
【解决方案2】:

你必须像这样一起使用 OFFSET 和 LIMIT。

解释:OFFSET 值也最常与 LIMIT 关键字一起使用。 OFF SET 值允许我们指定从检索数据开始的哪个行。顺便说一句,您也可以省略 OFFSET 关键字并像这样使用LIMIT 0,4,它告诉您从 0 开始获取 4 行。see more

SELECT ArticleTitle, PreviewText, PreviewImage 
FROM Articles 
ORDER BY ID DESC LIMIT 4 OFFSET 0 

SELECT ArticleTitle, PreviewText, PreviewImage 
FROM Articles 
ORDER BY ID DESC LIMIT 4 OFFSET 5

【讨论】:

  • 请注意:OP必须提醒客户端必须跟踪之前的偏移量并将信息发送到服务器脚本,否则它不会改变太多问题
猜你喜欢
  • 2015-11-20
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-29
  • 2019-04-20
  • 1970-01-01
相关资源
最近更新 更多