Heim  >  Fragen und Antworten  >  Hauptteil

Vermeiden Sie Buchungsüberschneidungen in PHP

<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粉517090748P粉517090748434 Tage vor458

Antworte allen(1)Ich werde antworten

  • P粉554842091

    P粉5548420912023-09-05 09:14:42

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

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

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

    Antwort
    0
  • StornierenAntwort