1

我已经搜索了很长一段时间没有运气的答案。抱歉,如果在我找不到的地方回答了这个问题。

我基本上在 MySQL 表中有一个队列,我需要使用 PHP 告诉人们他们在队列中的编号。

现在,我有了这个,但它所做的只是计算表中的行数:

$rowquery = "SELECT * FROM restaurant_guests ORDER BY ID UNTIL";
if ($stmt = $mysqli2->prepare($rowquery)) {

/* execute query */
$stmt->execute();

/* store result */
$stmt->store_result();

printf("%d", $stmt->num_rows - 1);

/* close statement */
$stmt->close();
}               

有人可以帮我指出正确的方向吗?非常感谢您!:)

4

2 回答 2

2

如果 ID 字段是队列的基础(即 id 越高,队列中的顺序越高),那么查询就像计算 id 值 <= 到用户 id 的行数一样简单

SELECT count(id) FROM restaurant_guests WHERE id <= ?

这里?表示您正在搜索的 id 值。

于 2013-05-24T22:27:28.357 回答
1

等一下。ID 会自动递增吗?如果只有 ID 较低的客人先出队,那岂不是更好:

answer = (the ID of user in question) - (lowest ID of the user in the queue) + 1

其中队列中用户的最低ID可以通过以下方式查询:

SELECT ID from restaurant_guests ORDER BY ID LIMIT 1

至少,与其他方法相比,这种方法将从 DBMS 传输恒定数量的数据。

于 2013-05-24T22:31:42.753 回答