10月1日授業での質問に対する回答
「指定された日付に空室の有無をどのように判定するか」?についての回答になります。
本システムでは利用できるお部屋の情報は「room」テーブルに保存されています。従って、roomテーブルには全てのお部屋の情報が存在するので、1日で宿泊できるお部屋の数は、roomテーブルのレコード数となります。
上記のことから、単純に空室の有無を判定する方法としては、「全部屋数-予約済み部屋数=0ならば空室なし」といえます。
ではこれをどのようにプログラミングするのか?ですが
①全部屋数を求める。
「SELECT * FROM room」を発行し、mysqli_num_rors()にて全部屋数を取得する。
②指定した日付の予約数を求める。※日付を2021年9月10日とすると
「SELECT * FROM reserve WHERE reserve_date = ‘2021-9-10’」 を発行し、mysqli_num_rors()にて予約件数を取得する。
③以上の結果から、全部屋数と予約済件数から空きがあるかをIF文にて判定する。
以上の手続きで空きの有無は判定できると思います。
ただ、空室数を取得する場合、現実的には上記のような面倒な手続きはしません。以下のようにもう少しスマートに処理します。このSQL文を発行するだけで取得できます。このあたりはPHPではなくSQLの領域になりますが。
SELECT SUM(1) AS 空室数 FROM room WHERE room_no NOT IN (SELECT room_no FROM reserve WHERE date(reserve_date) = ‘ 2021-9-10 ‘)