Évitez les situations de chevauchement de réservation en PHP
P粉517090748
2023-09-04 10:10:22
<p>J'ai une application qui permet aux utilisateurs de réserver des installations de divertissement. Les utilisateurs peuvent sélectionner une date de début (05/05/2022) et une date de fin (05/08/2022), puis envoyer les données via la base de données. </p>
<p><em>Mais</em>, <strong>(Question)</strong>J'ai un utilisateur qui souhaite réserver le même établissement. Ils sélectionnent une date de début (03/05/2022) et une date de fin (06/05/2022). Mon objectif est d'empêcher les utilisateurs de réserver des installations avec une date de fin comprise entre les dates de réservation existantes. </p>
<p><strong>(Mise en œuvre)</strong>Je peux y parvenir en désactivant les équipements requis pour la réservation si les dates de début et de fin se situent entre les dates de la réservation existante. J'ai terminé la requête SQL : </p>
<pre class="brush:php;toolbar:false;">"SELECT * FROM réservations OÙ installation = :facility ET :begDate ENTRE begDate ET endDate ET :endDate ENTRE begDate ET endDate";</pre>
<p>Quelles sont quelques suggestions pour gérer <strong>ISSUE</strong> dans les requêtes lors du traitement de <strong>ACHIEVED</strong> ? </p>
Vous pouvez vérifier si une nouvelle réservation chevauche une réservation existante en utilisant la logique suivante :
Étant donné une installation et une plage de dates, la requête vérifiera si la même réservation existe déjà avec une plage horaire qui se chevauche. Il renvoie la réservation « problématique », ou aucune ligne s'il n'existe aucun conflit.