gpt4 book ai didi

php - PHP while 循环中的 MySQL Count 仅返回一个结果然后为 Null

转载 作者:行者123 更新时间:2023-11-29 14:00:43 25 4
gpt4 key购买 nike

好的,我有一些 MySQL 表如下:

Buildings
Building-ID Building-Name
===========----=============
1 Building-1
2 Building-2
3 Building-3
4 Building-4


Building-1
Mroom State
=====----======
1 Booked
2 Empty
3 Empty
4 Empty

Building-2
Mroom State
=====----======
1 Booked
2 Empty
3 Empty
4 Empty

PHP 中的查询如下(忽略硬编码,我稍微简化了代码):

$sql = "select * from Buildings";
$result = mysql_query ($sql) or die(mysql_error());
while ($row = mysql_fetch_array($result))
{
$building[] = $row['ward_name'];
}


$v1 = 0;
while ($v1 < 4)
{
$sql = "SELECT COUNT(*) FROM `$building[$v1]` WHERE state = 'Empty'";
$result = mysql_query($sql) or die(mysql_error());
$count = mysql_result($result, 00);

var_dump($count[$v1]);
$v1 = $v1 + 1;
}

按照我的想法,这应该创建一个“建筑物”表中包含的建筑物数组,启动一个循环,从数组中加载建筑物名称,并为包含“空”的行数的表提供行计数。 “在状态栏中。它实际上做的是为第一个表提供计数,然后为其余表提供“NULL”。

非常感谢您能给我的任何帮助。

干杯!

最佳答案

改变你的数据模型怎么样?

table 建筑可以保持原样:

Buildings
Building-ID Building-Name
===========----=============
1 Building-1
2 Building-2
3 Building-3
4 Building-4

新表:

Rooms
Building-ID Mroom State
===========-=====-=====
1 1 1
1 2 0
2 1 0

状态 0 = 空,状态 1 = 已预订

然后使用带有分组依据的联接:

select count(*) from buildings b inner join rooms r on r.bid = b.id where r.state = 0 group by b.id;

然后,您将得到每座建筑物的一行,其中包含空房间的数量。您不需要为每栋大楼准备一张 table 。

关于php - PHP while 循环中的 MySQL Count 仅返回一个结果然后为 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15115428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com