酒店房间预订/预订

时间:2015-10-10 14:49:41

标签: php mysql sql

我正在为一家小旅馆预订/预订系统。我对PHP非常好,但对SQL不太好...我做了一个表格,您可以输入您的信息,房间数量,并使用日历选择到达日期和退房日期。

现在一切顺利,直到我到了必须检查哪些房间可用的地方,这让我很头疼。有10间房间可供预订。

我目前在MySQL中有一个表存储信息,日期,预订ID和房间ID /号码。

如何使用SQL来检查哪些房间可用而不是?

应该看起来像

"SELECT * FROM bookings WHERE checkinDate >= '$formCheckin' 
 AND checkoutDate <= '$formCheckout' " 

然后获取roomID并计算它们?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

如果您想知道一段时间内房间是否可用,那么逻辑如下:

SELECT r.*
FROM rooms r 
WHERE NOT EXISTS (SELECT 1
                  FROM bookings b
                  WHERE b.roomid = r.roomid AND
                        b.checkinDate <= $formCheckOut AND
                        b.checkoutDate >= '$formCheckIn
                 );

我不确定这两者是否都需要进行相等比较。逻辑是,如果没有预订在结账日期之前开始并且在结账日期之后结束,则可以使用房间。

然而,对于十个房间,我可能会建议您每天保留一个每个房间的桌子,比如说未来十年(每年再增加一年)。这样的表格不是很大,可能更容易理解如何使用它。另外,你可以处理像一对夫妇预订房间一周的事情,但前3天只有一个人在房间里。