Sto scrivendo un sistema di prenotazione hotel. dopo un sacco di studio (tra cui overflow dello stack) Ho scritto questo sql per scoprire camere libere:Verifica dei conflitti dell'intervallo di date in MySQL
SELECT
*
FROM room
WHERE
room_id NOT IN (
SELECT room_id
FROM bookings
WHERE
checkin <= '$check_in'
AND checkout >= '$check_out'
)
ma il problema è la sua, non considerando il controllo il tempo è 12:00:00 e checkout è 11:59:00
anche se non fornisce le query corrette come all'interno dell'intervallo di date non funziona come se io prenotassi da 15-18 una stanza singola il cui numero è 501. se eseguo ancora una query 17-19 questa stanza sembra gratis ma in la realtà dovrebbe essere occupata.
chiunque può suggerire un sql molto buono ed efficace che otterrà la data precisa in modo che nessuno scontro accadrà il sistema di prenotazione perché il sistema verrà implementato in modo reale, quindi gli errori causeranno molti problemi.
grazie in anticipo
Ciao grazie per la tua risposta. puoi per favore scrivere un simulatore sql in modo che io possa seguire perché non sono molto bravo a scrivere sql (mysql precisamente) grazie ancora –
questa è una buona presa! Quella query controlla entrambe le estremità dell'intervallo, ma che dire del mezzo? In altre parole, supponiamo che il cliente stia cercando di prenotare una stanza per 4 notti, ma era già prenotato per una notte nel mezzo? Il check-in della prenotazione sarebbe superiore al check-in $ richiesto e il checkout della prenotazione sarebbe inferiore al check-out $ richiesto, ma la stanza non è disponibile .... giusto? – Aerik
@Aerik Questa è una bella ripresa - aggiornerò la mia risposta di conseguenza. –