我一直在试图解决这个问题一天。 我甚至放弃了一段时间,因为我是一个PHP新手,我需要帮助。帮助SQL查询
这是我的问题: 我有一个查询,选择表中'酒店'的所有适当的记录,然后为每个酒店查找某个表中'某些类型的预订房间'和所有这些在某个时间段。 因此,我首先根据搜索表单提供的位置从“hotel_table”中取出所有hotel_id,并对每个hotel_id通过'booked_rooms'表循环。
下面的代码:
if(isset($_GET['book'])){
$sql=mysql_query("SELECT hotel_id FROM 'hotels' WHERE city='$city") or die(mysql_error());
while($row=mysql_fetch_array($sql)){
$sql_2=mysql_query("SELECT * FROM `booked_rooms` WHERE hotel_id='$hotel_id'
AND arrival_date BETWEEN '$arrival_date' AND '$departure_date'
OR departure_date BETWEEN '$arrival_date' AND '$departure_date'")
or die(mysql_error());
}
while($row_2=mysql_fetch_array($sql_2)){
print_r($row_2);
}
}
// $city, $arrival_date and $departure date are values retrieved from the search form
的问题是,我得到一个循环通过“酒店”表,并得到所有适当的位置hotel_ids,但一无所获与打印$ row_2阵列。 我试着在'foreach'循环中使用JOINS,但也没有运气。 我知道这是一个微不足道的问题,但我还在学习,所以任何提示都非常受欢迎。 在此先感谢。
你不需要在where子句的第二部分围绕括号吗?否则,这些谓词的优先级不清楚......? – Codewerks 2008-11-25 03:30:49
当。你是对的。我的意思是添加这些,但分心。它是固定的。 – staticsan 2008-11-25 05:06:39