Php 农舍预订的有效日期
我采用了我的第三种解决方案,它们产生的结果与租赁系统中的所有别墅相同 它应该是唯一可用且未预订或封锁的展示小屋 我在这些问题上做错了什么吗 及 查询预订的一个起始日期范围 这是我的三张桌子。Rentals拥有所有的小屋和细节,预订日期用于预订和预订日期,blocked_date是一个额外的表,用于阻止无法预订的日期。我已经开始连接前两张桌子,我得到了所有的别墅,而它应该只是抓住一个可用的。看起来预订被忽略了Php 农舍预订的有效日期,php,mysql,Php,Mysql,我采用了我的第三种解决方案,它们产生的结果与租赁系统中的所有别墅相同 它应该是唯一可用且未预订或封锁的展示小屋 我在这些问题上做错了什么吗 及 查询预订的一个起始日期范围 这是我的三张桌子。Rentals拥有所有的小屋和细节,预订日期用于预订和预订日期,blocked_date是一个额外的表,用于阻止无法预订的日期。我已经开始连接前两张桌子,我得到了所有的别墅,而它应该只是抓住一个可用的。看起来预订被忽略了 Table 'rentals' rental_id int Table 'reser
Table 'rentals'
rental_id int
Table 'reservation_dates'
reservation_id int
rental_id int
start_date date
end_date date
Table 'blocked_dates'
blocked_id int
rental_id int
date_from date
date_to date
我刚刚发现了问题所在。基于其他解决方案,我遵循他们的查询方法。当我将查询更改为以下布局时,它工作了
SELECT *
FROM `rentals`
WHERE `rental_id` NOT IN (
SELECT `rental_id`
FROM `reservation_dates`
WHERE `end_date` >= '".addslashes($date)."' AND `start_date` <= '".addslashes($end)."'
)
$date和$end被忽略。您的第二个查询使用了一个名为reservations的表-这是预订日期的输入错误吗?似乎查询1应该返回您想要的内容。。。除非我遗漏了一些明显的错误;只是也注意到了它并修复了它。我确实尝试了这两个查询,都有效,都没有给出我想要的结果。他们显示了所有的租金,而忽略了保留的租金。谢谢你让我头脑清醒:我以为你已经避开了这些变量=
Table 'rentals'
rental_id int
Table 'reservation_dates'
reservation_id int
rental_id int
start_date date
end_date date
Table 'blocked_dates'
blocked_id int
rental_id int
date_from date
date_to date
SELECT *
FROM `rentals`
WHERE `rental_id` NOT IN (
SELECT `rental_id`
FROM `reservation_dates`
WHERE `end_date` >= '".addslashes($date)."' AND `start_date` <= '".addslashes($end)."'
)