我想创建自动房间分区。
假设:
如果房间已满/达到最大值" 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
答案 0 :(得分:0)
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
的第一个房间。