2017-12-03 13 views
-1

私はサンプルプロジェクト "Hotel Management System"に取り組んでいます。ここで私は2つのテーブルを作成しました。ホテル管理システムで利用可能な予約を検索するMYSqlクエリ

tbl_room

| roomid | roomno |

をtbl_booking

| 予約ID | roomid | チェックイン | checkout |

私は、クエリ を作成している私は$ indateとに古いフォームから$を取得します。

$sql="SELECT roomid from tbl_room 
     where tbl_room.roomid not in (select roomid from tbl_booking where 
     checkout>'$indate')"; 

このクエリは機能しません。それはチェックアウト日をチェックするだけで、私は前の日付を予約できません。指定した日付範囲については、予約テーブルのエントリを持ち、room_masterからそれらを除外した場合

+0

「$ indate」と「$ outdate」の間のチェックアウトは、指定された日付に客室が予約されていない場合に役立ちます。 –

+0

私はそのようにしようとしました:$ sql = "select roomid from tbl_roomここで、tbl_room.roomidには入っていません。( '$ checkin'と '$ checkout'の間には チェックアウトがあります。 その時に予約されたすべての客室が返答します。それはあなたが期待している入れて希望するどのようなクエリー:: SELECT tbl_room.roomidないでtbl_roomからroomid(「2017年12月6日」の間にどこのチェックアウトをtbl_bookingからroomidを選択し、「2017年12月9日」) –

+0

次を示します? –

答えて

1

このクエリをチェックし、それがチェックされます。

$sql="SELECT * FROM tbl_room WHERE roomid not in (SELECT b.roomid FROM tbl_booking b where(b.checkout BETWEEN '$checkin' and '$checkout') and (b.checkin BETWEEN '$checkin' and '$checkout'))";

1
$sql="SELECT * FROM tbl_room WHERE roomid not in (SELECT b.roomid FROM tbl_booking b 
where(b.checkout BETWEEN '$checkin' and '$checkout') and 
(b.checkin BETWEEN '$checkin' and '$checkout'))"; 

最後に、このクエリは勤務。

関連する問題