2015-05-02 65 views
1

我想顯示房間類型的可用房間no ..目前我可以顯示所有房間..但是當檢查日期範圍時,我怎麼能隱藏從下拉列表中預訂的房間??沒有在下拉問題的房間

房間類型表

room_id || name || max || hotel_id || no_rooms 
    1   a  4  01   4 
    2   b  1  02   2 
    3   c  2  01   3 
    4   d  4  02   4 
    5   e  4  04   10 

登記表

id || room_type_id || hotel_id ||  check_in  || check_out 
1   1    01  2015-03-18 11:26:04 2015-03-20 11:26:04 
2   1    01  2015-03-19 10:28:04 2015-03-25 10:28:04 
3   2    01  2015-03-19 10:28:04 2015-03-25 10:28:04 
4   3    02  2015-03-19 10:28:04 2015-03-25 10:28:04 
從房間類型表

所以我得到no_rooms值,那麼我迭代它, 例如: - 如果它是然後在下拉列表中。

但是如何隱藏預約的房間?? ..正如在如果一個房間從上方4預訂,那麼它應該3 例如1 2 3在下拉

我有下面的sql來檢查可用性,但我怎麼能從下拉菜單中隱藏它?

SELECT * FROM bookings bk 
JOIN room_types rt ON rt.room_id = bk.room_type_id 
WHERE bk.hotel_id = '" . (int)$hotelid . "' 
AND bk.check_in 
NOT BETWEEN '".$chkin."' 
AND '".$chkout."' 
AND bk.check_out 
NOT BETWEEN '".$chkin."' 
AND '".$chkout."' 
AND (bk.check_in >= '".$chkin."' OR bk.check_out <= '".$chkout."') 
+0

*「我怎樣才能從下拉菜單中隱藏預訂的房間?」* - 什麼下拉菜單? –

+0

只是一個簡單的下拉菜單選擇下拉列表...即時通訊使用while循環來顯示房間數量..如果4房間1至4 ........ 1,2,3,4 @ Fred-ii- – jlocker

回答

1

像這樣的事情?

SELECT tr.* 
FROM room_types tr 
WHERE tr.hotel_id = '" . (int)$hotelid . "' 
AND NOT EXISTS (SELECT 'a' 
       FROM bookings bk 
       WHERE rt.room_id = bk.room_type_id 
       AND '".$chkin."' <= bk.check_out 
       AND '".$chkout."' >= bk_check_in 
       ) 
+0

我怎樣才能通過選擇列表循環? – jlocker

+0

循環上什麼?我需要更多信息 – Javaluca