forse ci sono...allora.....ho creato la query giusta...eccola qua:

SELECT * FROM prenotazioni WHERE Archiviata='NO' AND (DataArrivo='$dac') || (DataPartenza='$dpc') || (DataArrivo BETWEEN '$dac' AND '$dpc') || (DataPartenza BETWEEN '$dac' AND '$dpc')"

dove in una tabella prenotazioni controllo tutte le prenotazioni attive (NON archiviate) sulla base dell' inserimento da parte dell' utente di due date. Una volta inserite le date, la query controlla l' esistenza di prenotazioni in quel range di date, e restituisce se ci sono prenotazioni oppure no. La logica è questa: se non ci sono prenotazioni, fai procedere l' utente alla scelta delle camere da prenotare (che in questa struttura alberghiera sono 3), nel caso invece che esistano prenotazioni in questo range, eseguo subito dopo una query di count che conta quante camere sono state prenotate nel suddetto range di date. Se il valore restituito è uguale a 3(il totale delle camere disponibili), non sarà permesso all' utente di prenotare in queste date, se invece il valore restituito è minore di 3, conto quante camere sono state prenotate (per esempio 2) e restituisco all' utente il messaggio che può continuare con la prenotazione ma potendo prenotare soltanto una camera (che è quella che rimane libera in quelle date, perché 2 sono gia prenotate). Fino a qua funziona benissimo e non fa una piega, il problema sorge adesso:

nel mio database, nella tabella prenotazioni, ho inserito 2 prenotazioni. Una con data arrivo al 03.07.2014 e data partenza al 06.07.2014, e un altra con data arrivo al 07.07.2014 e data partenza al 11.07.2014. Se da form inserisco come data di arrivo il 03.07.2014 e data partenza il 05.07.2014, la query funziona bene dicendo che ci sono prenotazioni, e cosi vale se scelgo una data di partenza presente nel DB. Il problema sorge quando inserisco una data che va dal 04.07.2014 al 05.07.2014, che in realtà è contenuta in una prenotazione, ma la query mi dice che non ci sono prenotazioni, nonostante invece ci siano...... secondo voi dove sta l' errore nella query??



aspetto risposte


grazie