如何在php中的select查询where语句中使用数组?

如何在php中的select查询where语句中使用数组?,php,mysql,Php,Mysql,我有这样的代码: $sql11 = "select room_no from guestrocordtransc where roomtype='".$roomtype."'"; $retval11 = mysql_query( $sql11, $conn ); while($row11 = mysql_fetch_array($retval11,MYSQL_ASSOC)) { $cid_room=$row11['roomno']; } $sql = "select room_no

我有这样的代码:

$sql11 = "select room_no from guestrocordtransc where roomtype='".$roomtype."'";
$retval11 = mysql_query( $sql11, $conn );
while($row11 = mysql_fetch_array($retval11,MYSQL_ASSOC))
{ 
    $cid_room=$row11['roomno']; 
}
$sql = "select room_no 
FROM roominfo WHERE room_no 
NOT IN(
select roomno 
from guestrocordtransac 
where roomtype='".$roomtype."' 
between '".$check_in."' 
and '".$check_out."' 
and cid='".$cid_room."') 
and roomtype='".$roomtype."'";
这里我得到一个房间号数组,它存储在$cid_room中

现在,我需要select查询中的$cid_room来获取一个不在guestrocordtranac中的特定room_no

我的第二个查询如下所示:

$sql11 = "select room_no from guestrocordtransc where roomtype='".$roomtype."'";
$retval11 = mysql_query( $sql11, $conn );
while($row11 = mysql_fetch_array($retval11,MYSQL_ASSOC))
{ 
    $cid_room=$row11['roomno']; 
}
$sql = "select room_no 
FROM roominfo WHERE room_no 
NOT IN(
select roomno 
from guestrocordtransac 
where roomtype='".$roomtype."' 
between '".$check_in."' 
and '".$check_out."' 
and cid='".$cid_room."') 
and roomtype='".$roomtype."'";

是否可以在查询中这样给数组值$cid\u room,它会检查所有值。

如果$cid\u room不是多维数组,您可以在选择查询中这样使用数组:

从roominfo中选择房间号 房间号不在。内爆“,”,$cid\U房间。 roomtype=“.$roomtype.”


但我不确定这是否适用于您的情况。

您可以将数组转换为in子句

1:while$row11=mysql\u fetch\u array$retval11,mysql\u ASSOC { $cid_room=$row11['roomno']; }

这样你就不会得到一个$cid_房间的数组

您必须使用$cid_room[]而不是$cid_room

$sql=选择房间号 来自roominfo,房间号 不在 选择房间号 来自Guestrocord Transac 其中roomtype='.$roomtype' 在“$签入”之间 还有“$退房。” 和cid在“$cid_房间” roomtype=“.$roomtype.”;
不要使用mysql,你的意思是:WHERE room\u no!=$cid_room AND roomtype=“.$roomtype.”???rooinfo表如下所示:id、房间号、房间类型、cid……例如:第一行1302 a/c 1……第二行201非a/c 2……我希望您理解我的评论与您的问题无关。这是对代码安全性的一种保护