我想创建自动房间划分。
假设:
- 我有 4 条数据。
- 每个房间最多容纳 2 人。
如果房间已满/达到最大“2”,第 3 个人会自动插入到下一个房间。
这是我的代码。假设4数据。
$kuota=2; //Max 2 data in 1 room
while ($row = mysqli_fetch_array($query)) {
$id = $row["id"];
$x=1;
while($x<=$kuota) {
$sql2 = "UPDATE cds SET room=$y WHERE id='$id'";
$query2 = mysqli_query($con, $sql2) or die (mysqli_error($con));
$x++;
}
$y++
}
但它不起作用。
我的代码太丑了:(
我想要得到这样的结果
name || Room
Michael || 1
Muller || 1
...
Cyntia || 2
Gina || 2
最佳答案
while ($row = mysqli_fetch_assoc($query)) {
$id = $row['id'];
$sql2 = "UPDATE cds AS c1
CROSS JOIN (SELECT room
FROM cds
GROUP BY room
HAVING COUNT(*) < $kuota
ORDER BY room
LIMIT 1) AS c2
SET c1.room = c2.room
WHERE id = $id";
mysqli_query($con, $sql2) or die (mysqli_error($con));
}
c2
子查询返回分配给它的人数少于 $kuota
人的第一个房间。
关于PHP/MySQL 更新查询每 2 列自动更新房间更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24480680/