Originariamente inviato da Santino83_02
in realtà la COSA_A sarà disponibile dal 1 al 4 agosto, dal 7 al 18 agosto e dal 20 al 31 agosto... la cosa B sarà disponibile dal 4 al 15 agosto (si dà per scontato che tutte le altre date al di fuori del range siano non disponibili)... fatto questo per trovare le cose disponibili ti basterebbe usare http://dev.mysql.com/doc/refman/5.0/...tor_between...
E' quello che sto studiando al momento

Originariamente inviato da Santino83_02
per esempio se vuoi tutte le cose disponibili tra il 6 e il 10 agosto puoi fare in due modi (a seconda di come vuoi i risultati), o confronti che il 6 è compreso negli estremi del periodo e il 10 è compreso negli estremi del periodo (in questo caso ti prenderebbe solo la cosa b), oppure per ogni giorno compreso tra 6 e 10 controlli se in quel giorno c'è una cosa disponibile (e ottieni le due cose)
Ovviamente devo ottenere il caso B
Originariamente inviato da Santino83_02
detta questa cosa la cosa che più tengo a dirti è che la cosa di usare un array per le cose è una cosa assurda e che non si fa così la cosa.
Infatti non userò un array... rabbrividisco
Originariamente inviato da Santino83_02
Le cose che ho scritto sopra sono solo un esempio di cosa potresti fare per tornare le cose disponibili, ad esempio per la cosa potresti usare i timestamp e usare i normali operatori piuttosto che il between tra le date della cosa. Insomma pure te devi fare molta analisi su come sviluppare la cosa e come risolvere le cose che dovrai affrontare con la cosa che ti troverai ad utilizzare.cosa. cose. cosi. cos. cosa.
Dunque, il problema è anche peggio del previsto perchè la COSA_A che ora chiameremo Stanza A (perchè ci sta come esempio non perchè debba trattare stanze) oltre ad avere una certa disponibilità di giorni, ce l'ha anche di ore.
Quindi può essere disponibili il giorno 4 dalle 15 alle 18 e il giorno 7 dalle 12 alle 15
Gli intervalli di tempo NON compresi fra questi che ti ho scritto sopra non dovrebbero uscire in una ipotetica query.
E il bello è che quella sopra è la tabella delle disponibilità (ogni ora disponibile la salva come record nel DB come timestamp) ma poi quando una camera viene prenotata la query come la cambio?

Ad esempio:
------------------------------------
--- Stanza_A > disponibilità: giorno 4 dalle 15 alle 18 e il giorno 7 dalle 12 alle 15
---> OK la prenoto il giorno 4 dalle 15 alle 16
--- Stanza_A > nuova disponibilità: giorno 4 dalle 16 alle 18 e il giorno 7 dalle 12 alle 15
------------------------------------
Ovviamente la prenotazione è un'altra tabella che salva (come quella delle disponibilità) le singolte ore prenotate in un record con timestamp

Ma come incrocio queste due tabelle?
Secondo te un esempio di query come potrebbe essere?
Mi viene da usare BETWEEN ma come posso dalla query ESCLUDERE i timestamp delle ore già prenotate?
mmmm....