1

でこれを考えるのに問題がありPHP & Mysqlます。ホテル予約システムで空室状況を確認する方法などを読みましたが、それらは異なるようです。

会議室を最低 6 時間予約できる予約システムを作成する必要があるため、ユーザーが日付 (2012 年 4 月 24 日など) に予約する場合、レンタルの開始時刻と(00:00-06:00, 06:00-12:00, 12:00-18:00,18:00-24:00).合計時間数を選択します。 (6、12、18 など) ユーザーは部屋を借りたいと考えています。

日付は整数 (タイムスタンプ) として格納されます。

これには 2 つの問題があります。部屋がまだ予約可能な月の可能なすべての日を受け取る方法と、新しい予約が可能かどうかを確認する方法がわかりません。

ユーザー入力の開始日と終了日を計算する方法は知っていますが、正しいmysql クエリまたはphp チェックが利用可能であることを確認できません。

おそらく非常に単純ですが、どういうわけか、終了日は常に可変であるため、答えが見つかりません。

よろしくお願いします!

EDIT テーブル構造: 予約

ID int(11)         
user_id int(11)     
予約名 varchar(255)    
開始日 int(11)         
終了日 int(11)         

関連するのは予約だけだと思います

4

2 に答える 2

1

MySQL で利用可能な日のリストを生成するのはかなり難しいことがわかります。代わりに、希望する月内の予約日の順序付きリストを選択し、PHP でその月のすべての日をループして、MySQL クエリからの次の予約日と一致する場合はその日をスキップすることをお勧めします。この質問に対する答えは、PHP でループしたい日付を作成するのに役立ちます。擬似コード:

$booked_days = sql(select all booked days in month order by day);
for each $day in month {
   if $day != current($booked_days) {
      // $day is not booked
   } else advance_next($booked_days);
}

新しい予約が可能かどうかを確認するには、今日の非常によく似た質問に対する私の回答をご覧になることをお勧めします.

于 2012-04-24T20:40:56.823 に答える