PHP / MySQL更新查询每2列更新室自动更改

时间:2014-06-29 22:01:01

标签: php mysql

我想创建自动房间分区。

假设:

  • 我有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

1 个答案:

答案 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的第一个房间。