Elakkan tempahan situasi bertindih dalam PHP
P粉517090748
P粉517090748 2023-09-04 10:10:22
0
1
491
<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粉517090748
P粉517090748

membalas semua(1)
P粉554842091

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan