MySQL のテーブルには、今後数年間のホテル予約が保持されます。
各行には、id、start_date、end_date、および status が含まれます。start_date にはチェックイン日を表す日付タイプが含まれ、end_date はチェックアウト日です。
個々の日付の配列を取得して、1 年間のカレンダーをループし、来年の空いている日付と予約されている日付を表示できるようにしたいと考えています。
チェックアウトが早いため、ホテルは end_date に部屋を再び貸し出すことができるため、 end_date 自体を含める必要はありません。
例
ID | start_date | end_date | status
1 | 03/15/2014 | 03/18/2014 | Paid
2 | 05/22/2014 | 05/25/2014 | Deposit
3 | 08/12/2014 | 08/13/2014 | Paid
そして配列する:
$months_arry = array(1 => '03/15/2014', 1 => '03/16/2014', 1 => '03/17/2014',
1 => '05/22/2014', 1 => '05/23/2014', 1 => '05/24/2014', 1 => '08/12/2014');
カレンダーの 12 か月すべてが同じページに垂直に表示されるため、配列に対して各日付をチェックして、空席を緑にするか、占有を赤にするかを確認するのが最も簡単です。
SQLサーバー上のasp 3.0では、「
SELECT start_date, end_date from HotelBookings where start_date >= '2013-12-31'
AND enddate <= '2015-01-01' ORDER BY start_date ASC"
次に、.. do until rs.EOF ループ .. 内部で
loop i は start_date と end_date を取得し、2 つが等しくなるまでそれらをループし、個々の日付の配列を構築する際に start_date に + 1 を追加します。
答えを探しているときにこの例を見つけましたが、見苦しくエレガントではありません
<?php
// Make a MySQL Connection
$query = "SELECT * FROM example";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo $row['name']. " - ". $row['age'];
echo "<br />";
}
?>