我工作到酒店预订系统,我目前正试图选择可用房间(不保留)。笨 - 选择其中id不(另一个查询结果)
Rooms DB Structure:
ID
ROOM NAME
CAPACITY
HOTEL RESERVATIONS DB STRUCTURE:
ID
CHECK_IN
CHECK_OUT
ROOMS
...
这是我当前的代码:
function searchFreeRooms($data){
$check_in = $data['fields']['check_in'];
$check_out = $data['fields']['check_out'];
$this->db->select("*");
$this->db->from('core_hotel_rooms');
$this->db->where("id NOT IN (select rooms,total_guests from res_hotel where check_in <= '$check_in' AND check_out >= '$check_in' OR check_in <= '$check_out' AND check_out >= '$check_out' OR check_in >= '$check_in' AND check_out <= '$check_out') ");
$query = $this->db->get();
return $query->result();
}
用户可以预订多间客房在一个时间,并预留房间ID是存储在用逗号前分隔栏“房间”:2,3, 5
以我前,室中存在的该列不应该被显示,但遇到麻烦,因为被选择逗号之前仅第一ID(室),例如:2,3,5->仅2被选择和3,5仍然显示在我的前面。
问题是在这里:$this->db->where("id NOT IN (select rooms,total_guests from res_hotel where check_in <= '$check_in' AND check_out >= '$check_in' OR check_in <= '$check_out' AND check_out >= '$check_out' OR check_in >= '$check_in' AND check_out <= '$check_out') ");
我尝试这样做:$this->db->where("id NOT IN (1, 2) ");
和它的作品完美,但不上法第二查询。
对不起,我的英语...
非常感谢所有那些谁可以帮助!
还不行,它选择逗号之前只有第一ID ... – Idea13