当表格命中10行时,为这些行分配唯一ID

时间:2015-12-27 02:56:53

标签: php mysql queue

如何在程序PHP中执行此操作 •点击我网站上的按钮的人将其独特的数据(已经完成)放入表格中 •当桌子达到10行/人时,为这10个人(如大厅ID)分配一个唯一的ID(需要对他们10相同)。 •为具有该唯一ID的人生成页面。

我知道这很复杂而且要求太多,如果我能够至少得到关于该做什么的指示,那将是值得赞赏的。

编辑:自从04:36开始,我现在就去睡觉了。谢谢大家的建议和帮助。明天会试试:)晚安!

3 个答案:

答案 0 :(得分:1)

实际上,您已拥有该唯一ID。看这里:

Preson 01: Alan, ...
Preson 02: Bob, ...
Preson 03: Clarice, ...
...
Preson 09: James, ...

Preson 10: Samanta, ...
Preson 11: John, ...
Preson 12: Suzie, ...
...
Preson 19: Tony, ...

Preson 20: XXX, ...
Preson 21: XXX, ...
Preson 22: XXX, ...
...
Preson 29: XXX, ...

所以,只是uniqueID = intval(personId / 10) + 1'它......

当你注册新人时:

$person = $this->savePersonData($data);
$personId = $person->id;
$uniqueID = intval($personId / 10) + 1;

// redirect that person to his specific lobby url
header("Location: http://host.name/lobby/{$uniqueID}/visit");

答案 1 :(得分:0)

好的,另一种更标准的做法是告诉mysql你想要10个人从id#

开始

W3Schools

因此,在您的情况下,您可以使用类似的内容进行查询:

$query = "SELECT * FROM table LIMIT 10 OFFSET 1";

OFFSET是($ page - 1)* 10 $ page是您想要获得的人的页面。因此,如果你想获得第二页,它将是(2 - 1)* 10 = 10

$query = "SELECT * FROM table LIMIT 10 OFFSET 10";

LIMIT 10语句告诉mysql只返回接下来的10个条目。

答案 2 :(得分:0)

您可以做的是在数据库中将id列定义为id INT NOT NULL AUTO_INCREMENT。这样,当您将每个人的数据插入表格时,id将被设置为下一个int。要确定该人的lobby_id,只需计算ID DIV 10(将div和floor降低到较低的int)。

SELECT id, id DIV 10 AS lobby_id, other, columns
FROM my_table
WHERE ....