devi controllare che né datainizio né datafine siano nell'intervallo della prenotazione
devi controllare che né datainizio né datafine siano nell'intervallo della prenotazione
Non basta, il periodo che uno vuole prenotare potrebbe includere completamente quello già prenotato, quindi non è detto che se nessuna delle 2 date è compresa, allora la prenotazione si può fare.
Esempio:
Stanza prenotata dal 20/6/2018 al 25/6/2018
una prenotazione che richiede le date dal 18/6/2018 al 28/6/2018, pur non avendo nessuna delle 2 date di inizio e fine comprese nell'intervallo sopra, è da rifiutare.
Ciao Grazie per la risposta, ho provato a fare la query in questo modo, ma mi da sempre errore di sintassi:
codice:SELECT * FROM carrello WHERE ((data_inizio =>'2018-08-04' AND data_fine <='2018-08-04') OR (data_inizio <= '2018-08-04' AND data_fine >= '2018-08-4') OR (data_inizio >= '2018-08-04' AND data_fine >='2018-08-04')) AND id_postazione = 1
Secondo me basta che verifichi che
data_inizio <= '$datafine' AND data_fine >= '$datainizio'
Se trovi qualcosa allora non puoi prenotare
Scusa ma:
07-08 è minore di 23-08
AND
15-08 é maggiore di 03-08
Di conseguenza dovrebbe trovarti la prenotazione e quindi non permetterti di effettuarne un altra