cari

Rumah  >  Soal Jawab  >  teks badan

Elakkan tempahan situasi bertindih dalam PHP

<p>Saya mempunyai aplikasi yang membolehkan pengguna menempah kemudahan hiburan. Pengguna boleh memilih tarikh mula (05/05/2022) dan tarikh tamat (05/08/2022) dan kemudian menghantar data melalui pangkalan data. </p> <p><em>Tetapi</em>, <strong>(Soalan)</strong>Saya mempunyai pengguna yang ingin menempah kemudahan yang sama. Mereka memilih tarikh mula (05/03/2022) dan tarikh tamat (05/06/2022). Matlamat saya adalah untuk menghalang pengguna daripada menempah kemudahan dengan tarikh tamat antara tarikh tempahan sedia ada. </p> <p><strong>(Dilaksanakan)</strong>Saya boleh mencapai ini dengan melumpuhkan kemudahan yang diperlukan untuk tempahan jika tarikh mula dan tamat jatuh di antara tarikh tempahan sedia ada. Saya telah menyelesaikan pertanyaan SQL: </p> <pre class="brush:php;toolbar:false;">"PILIH * DARI tempahan WHERE facility = :facility DAN :begDate ANTARA begDate DAN endDate DAN :endDate ANTARA begDate DAN endDate";</pre> <p>Apakah beberapa cadangan untuk mengendalikan <strong>ISU</strong> dalam pertanyaan semasa mengendalikan <strong>DICAPAI</strong>? </p>
P粉517090748P粉517090748436 hari yang lalu463

membalas semua(1)saya akan balas

  • P粉554842091

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

    Anda boleh menyemak sama ada tempahan baharu bertindih dengan tempahan sedia ada menggunakan logik berikut:

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

    Memandangkan kemudahan dan julat tarikh, pertanyaan akan menyemak sama ada tempahan yang sama sudah wujud dengan julat masa yang bertindih. Ia mengembalikan tempahan "bermasalah", atau tiada baris jika tiada konflik wujud.

    balas
    0
  • Batalbalas