Ciao a tutti
sto realizzando un sito per un b&b di 3 camere.... ho fatto tutto ma sono fermo a un problema alquanto strano...
la logica è questa: tramite questa query
"SELECT * FROM prenotazioni WHERE Archiviata='NO' AND (DataArrivo BETWEEN '$dac' AND '$dpc') || (DataPartenza BETWEEN '$dac' AND '$dpc')";
controllo se ci sono prenotazioni esistenti nel DB (dove $dac e $dpc sono rispettivamente data di arrivo e data di partenza inserite dall' utente). Se ci sono prenotazioni esistenti, controllo quante camere sono rimaste disponibili attraverso un ulteriore query di count e comunico le camere disponibili all' utente, altrimenti se non ci sono prenotazioni ho 3 camere disponibili.
Nella tabella prenotazioni ho inserito una prenotazione fittizia...
Data Arrivo Data Partenza
2014-07-03 2014-07-07
Iniziamo il controllo (articolo le prove con i numeri)
1 - inserisco data arrivo=2014-07-01 data partenza=2014-07-02 -----> la prenotazione non esiste (la query è OK)
2 - inserisco data arrivo=2014-07-02 data partenza=2014-07-03 -----> la prenotazione esiste(la query è OK)
3 - inserisco data arrivo=2014-07-03 data partenza=2014-07-04 -----> la prenotazione esiste(la query è OK)
4 - inserisco data arrivo=2014-07-04 data partenza=2014-07-05 -----> la prenotazione non esiste(invece ESISTE, ma non la intercetta)
5 - inserisco data arrivo=2014-07-05 data partenza=2014-07-06 -----> la prenotazione esiste(la query è OK)
6 - inserisco data arrivo=2014-07-06 data partenza=2014-07-07 -----> la prenotazione esiste(la query è OK)
La query quindi funziona in tutti i casi tranne che nel caso numero 4...... come mai? e poi perché nel caso numero 5 funziona?? (non dovrebbe funzionare visto che la casistica è uguale al caso numero 4 [la differenza è sempre di un giorno]).... a questo punto cosa potrebbe essere???
grazie in anticipo a chi mi aiuterà....