0

check_in と nights の 2 つのフィールドがあります。

泊数にはチェックイン日が含まれます。したがって、顧客が 1 泊予約した場合、その顧客は翌日 check_out し、その部屋は予約可能になります (他の誰かがすでに予約していない限り)。

これは、テーブル内のいくつかのレコードの例です。

customer          room            check_in            nights
cus1              test room       2013-01-23          2
cus2              test room       2013-01-25          1
cus3              test room       2013-01-26          4

cus3 は部屋を予約しました。彼らは 2013 年 1 月 26 日に部屋にチェックインし、4 泊する予定です。この間、客室は予約できません。

では、部屋が空いているかどうかを確認するにはどうすればよいでしょうか。

部屋は 2013 年 1 月 30 日のチェックインのみ利用可能です。

すべての助けに感謝します:)

4

4 に答える 4

0

一般的なシナリオの MySQL ステートメントのリストが掲載された優れたサイトがあります。特定の期間内に部屋が利用可能かどうかを確認することもその 1 つです: http://www.artfulsoftware.com/infotree/queries.php#576

于 2013-01-10T14:39:08.420 に答える
0

チェックイン日と宿泊日数を選択すると、次のようなことができます (ダミーコード):

    $startDate='2013-01-26';//for example
    $to_time=date("Y-m-d", strtotime("$startDate + 4 day"));
    echo $to_time;//prints 2013-01-30
于 2013-01-10T14:39:17.477 に答える
0

顧客行のデータを取得したら、これを使用してチェックアウト日を取得します。

$check_out = date('Y-m-d', strtotime($row['check_in'].' + '.$row['nights'].' days'));
于 2013-01-10T14:35:10.833 に答える
0

このようなもの、

SELECT room, 
       CASE WHEN 'dateHere' BETWEEN check_in AND check_out
           THEN 'UNAVAILABLE'
           ELSE 'AVAILABLE'
       END Status
FROM
  (
      SELECT  room, 
              check_in, 
              DATE_ADD(check_in, INTERVAL nights day) check_out
      FROM    booking
  ) s
于 2013-01-10T14:35:21.207 に答える