Maison  >  Questions et réponses  >  le corps du texte

Évitez les situations de chevauchement de réservation en PHP

<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粉517090748P粉517090748383 Il y a quelques jours421

répondre à tous(1)je répondrai

  • P粉554842091

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

    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.

    répondre
    0
  • Annulerrépondre