gpt4 book ai didi

php - 使用php返回大于某个ID的所有结果

转载 作者:行者123 更新时间:2023-11-29 00:56:53 27 4
gpt4 key购买 nike

我正在尝试检查我的数据库并将任何新添加的内容返回到数据库。

我的客户端可以传入它从数据库收到的最后一个项目的 ID。所以我认为这将是一个很好的起点。

那么我是否将偏移量设置为我作为参数传递给 php 脚本的 ID(theid),并且只会返回比该 ID 更新的数据库条目?还是我完全找错了树?

这里是代码的意思

$theid  = isset($_GET['theid']) ? $_GET['theid'] : "";
$type = isset($_GET['type']) ? $_GET['type'] : "global";
$offset = isset($_GET['offset']) ? $_GET['offset'] : theid;
$count = isset($_GET['count']) ? $_GET['count'] : "100";
$sort = isset($_GET['sort']) ? $_GET['sort'] : "id ASC";

// Localize the GET variables
$udid = isset($_GET['udid']) ? $_GET['udid'] : "";
$name = isset($_GET['name']) ? $_GET['name'] : "";
$clubname = isset($_GET['clubname']) ? $_GET['clubname'] : "";

// Protect against sql injections
$type = mysql_real_escape_string($type);
$offset = mysql_real_escape_string($offset);
$count = mysql_real_escape_string($count);
$sort = mysql_real_escape_string($sort);
$udid = mysql_real_escape_string($udid);
$name = mysql_real_escape_string($name);
$clubname = mysql_real_escape_string($clubname);

// Build the sql query
$sql = "SELECT * FROM $table WHERE ";

switch($type) {
case "global":
$sql .= "1 ";
break;
case "device":
$sql .= "udid = '$udid' ";
break;
case "name":
$sql .= "name = '$name' ";
break;
case "clubname":
$sql .= "clubname = '$clubname' ";
break;
}

$sql .= "ORDER BY $sort ";
$sql .= "LIMIT $offset,$count ";

$result = mysql_query($sql,$conn);

if(!$result) {
die("Error retrieving scores " . mysql_error());
}

非常感谢,-代码

最佳答案

假设 ID 是一个序列号,并且较新的条目总是比以前的条目具有更高的 ID,您需要以下内容:

SELECT * FROM table WHERE id > $id;

否则,您需要向表中添加时间戳,并运行两个查询:

SELECT createdAt FROM table WHERE id = $id;

将该值分配给 $timestamp,然后运行以下命令:

SELECT * FROM table WHERE createdAt > $timestamp

您可以选择组合查询:

SELECT * FROM table WHERE createdAt > (SELECT createdAt FROM table WHERE id = $id)

使用偏移量是个坏主意。如果您的 ID 之前的任何记录被删除,您的结果将不准确。例如,假设发生以下情况:

  • 插入 100 条记录(最后一个 ID 为 100)
  • 删除记录 47 和 48
  • 添加 1 条记录(最后的 ID 是 101)
  • 查找自 id #100 以来的新记录

如果您使用偏移量 100,则不会返回任何记录。

关于php - 使用php返回大于某个ID的所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5709331/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com