避免PHP中的预订重叠情况
P粉517090748
P粉517090748 2023-09-04 10:10:22
0
1
498
<p>我有一个允许用户预订娱乐设施的应用程序。用户可以选择开始日期 (05/05/2022) 和结束日期 (05/08/2022),然后通过数据库发送数据。</p> <p><em>但是</em>,<strong>(问题)</strong>我有一位用户想要预订相同的设施。他们选择开始日期 (05/03/2022) 和结束日期 (05/06/2022)。我的目标是防止用户预订结束日期介于现有预订日期之间的设施。</p> <p><strong>(已实现)</strong>如果开始日期和结束日期位于现有预订日期之间,我可以通过禁用所预订的所需设施来实现这一目标。我已经完成了 SQL 查询:</p> <pre class="brush:php;toolbar:false;">"SELECT * FROM reservations WHERE facility = :facility AND :begDate BETWEEN begDate AND endDate AND :endDate BETWEEN begDate AND endDate";</pre> <p>在处理查询中的<strong>ISSUE</strong>和处理<strong>ACHIEVED</strong>的同时,有哪些建议?</p>
P粉517090748
P粉517090748

全部回复(1)
P粉554842091

您可以使用以下逻辑检查新预订是否与现有预订重叠:

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

给定设施和日期范围,查询将检查是否已存在相同预订且时间范围重叠的预订。它返回“有问题的”预留,或者如果不存在冲突则不返回任何行。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板