当前位置:  开发笔记 > 编程语言 > 正文

帮助SQL查询

如何解决《帮助SQL查询》经验,为你挑选了1个好方法。

我被困在试图解决这个问题一天了.我甚至放弃了一段时间,因为我是一个PHP新手,我需要帮助.

这是我的问题:我有一个查询,在表'酒店'中选择所有适当的记录,然后每个酒店在表'scheduled_rooms'中查找某种类型的预订房间,并在一段时间内查找所有这些.首先,我根据搜索表单提供的位置从'hotel_table'中取出所有hotel_ids,并且每个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'表获得了一个循环并获得了适合该位置的所有hotel_ids,但是打印$ row_2数组却没有任何结果.我尝试在SQL,'foreach'循环中使用JOINS,但也没有运气.我知道这是一个微不足道的问题,但我还在学习,所以任何提示都受到高度欢迎.提前致谢.



1> Codewerks..:

不知道PHP,你能在一个查询中做到吗?

SELECT booked_rooms.*, hotels.* FROM 'hotels' 
JOIN 'booked_rooms' ON hotels.hotel_id = booked_rooms.hotel_id
WHERE 
   hotels.city='$city" AND
   (
   booked_rooms.arrival_date BETWEEN '$arrival_date' AND '$departure_date' OR   
   booked_rooms.departure_date BETWEEN '$arrival_date' AND '$departure_date')

根据PHP字符串等的需要检查表格周围的引号......

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有