PHP -防止重叠保留

inn6fuwd  于 2022-11-21  发布在  PHP
关注(0)|答案(1)|浏览(88)

我有一个应用程序,允许用户预订一个娱乐设施。用户可以选择一个开始日期(05/05/2022)和结束日期(05/08/2022),然后数据通过数据库发送。

  • 然而 *,**(问题)**我有一个用户想要预订同一设施。他们选择了开始日期(05/03/2022)和结束日期(05/06/2022)。我的目标是防止用户预订结束日期介于现有预订日期之间的设施。
    **(ACHIEVED)**如果开始日期和结束日期介于现有预订日期之间,则通过禁用正在预订的所需设施,我已达到目标。我已执行以下SQL查询:
"SELECT * FROM reservations WHERE facility = :facility AND :begDate BETWEEN begDate AND endDate AND :endDate BETWEEN begDate AND endDate";

对于在查询中处理ISSUE以及处理ACHIEVED,有哪些建议?

uoifb46i

uoifb46i1#

我的目标是防止用户预订结束日期介于现有预订日期之间的设施。
您可以使用以下逻辑检查新保留是否与现有保留重叠:

SELECT * 
FROM reservations 
WHERE facility = :facility AND :begDate <= endDate AND :endDate >= begDate

给定设施和日期范围后,查询将检查是否已存在同一预订且时间范围重叠的预订。它将返回“违规”预订,如果不存在冲突,则不返回任何行。

相关问题