【问题标题】:PHP MySQL Load rows from the database that have not yet been loaded [closed]PHP MySQL从数据库中加载尚未加载的行[关闭]
【发布时间】:2021-02-18 20:39:55
【问题描述】:

如何在不使用 id 的情况下使用 ajax 加载之前未加载的行?因为排序行不是按id。

【问题讨论】:

  • 任何示例代码?
  • 如果您的订单已设置,您可以将分页基于ROW_NUMBER()

标签: php mysql ajax


【解决方案1】:

在 SELECT 语句中使用 LIMIT 子句:

SELECT * from <table> ORDER BY <something> LIMIT <start>, <count>

例如:

SELECT * from myTable ORDER BY `orderDate` DESC LIMIT 5,10  -- returns rows 6-15 (LIMIT counts from 0)

您需要跟踪已返回的行。您可以使用 $_SESSION 变量来执行此操作,该变量存储要返回的下一行的偏移量。

因此,如果您如上所述检索了第 6-15 行,则可以使用

$_SESSION['nextOffset'] = 15;

然后

$query = "SELECT * from myTable ORDER BY `orderDate` DESC LIMIT ".$_SESSION['nextOffset'].','.($_SESSION['nextOffset']+10);
$_SESSION['nextOffset'] += 10;

毫无疑问,本地 SQL 警察会在连接变量时遇到问题,但在这种情况下,变量数据完全在您的控制之下,所以它是安全的。如果您包含基于用户输入的 WHERE 子句,那么您将转到准备好的语句。

【讨论】:

    猜你喜欢
    • 2022-08-14
    • 1970-01-01
    • 2020-05-02
    • 2011-06-05
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    相关资源
    最近更新 更多