Évitez les situations de chevauchement de réservation en PHP
P粉517090748
P粉517090748 2023-09-04 10:10:22
0
1
417
<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>
P粉517090748
P粉517090748

répondre à tous(1)
P粉554842091

Vous pouvez vérifier si une nouvelle réservation chevauche une réservation existante en utilisant la logique suivante :

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

É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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!