Vermeiden Sie Buchungsüberschneidungen in PHP
P粉517090748
P粉517090748 2023-09-04 10:10:22
0
1
501
<p>Ich habe eine Anwendung, mit der Benutzer Unterhaltungseinrichtungen buchen können. Benutzer können ein Startdatum (05.05.2022) und ein Enddatum (05.08.2022) auswählen und die Daten dann über die Datenbank senden. </p> <p><em>Aber</em>, <strong>(Frage)</strong>Ich habe einen Benutzer, der die gleiche Einrichtung buchen möchte. Sie wählen ein Startdatum (03.05.2022) und ein Enddatum (06.05.2022). Mein Ziel ist es, zu verhindern, dass Benutzer Einrichtungen buchen, deren Enddatum zwischen bestehenden Buchungsdaten liegt. </p> <p><strong>(Implementiert)</strong>Ich kann dies erreichen, indem ich die erforderlichen Annehmlichkeiten für die Reservierung deaktiviere, wenn das Start- und Enddatum zwischen den Daten der bestehenden Reservierung liegt. Ich habe die SQL-Abfrage abgeschlossen: </p> <pre class="brush:php;toolbar:false;">"SELECT * FROM reservations WHERE Facilities = :facility AND :begDate BETWEEN begDate AND endDate AND :endDate BETWEEN begDate AND endDate";</pre> <p>Welche Vorschläge gibt es für den Umgang mit <strong>ISSUE</strong> bei der Bearbeitung von <strong>ACHIEVED</strong>? </p>
P粉517090748
P粉517090748

Antworte allen(1)
P粉554842091

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

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

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage