Elakkan tempahan situasi bertindih dalam PHP
P粉517090748
2023-09-04 10:10:22
<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>
Anda boleh menyemak sama ada tempahan baharu bertindih dengan tempahan sedia ada menggunakan logik berikut:
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.