Ik heb nog nooit gewerkt met de datum functies in MySQL en weet niet zo goed waar ik moet beginnen bij het probleem wat ik nu heb. Misschien dat iemand hier mij op weg kan helpen. De situatie is alsvolgt:
Ik heb een tabel met huisjes en een tabel met al gemaakte reserveringen voor een bepaald huisje.
Nu ben ik de zoekfilter van de huisjes aan het uitbreiden met het filteren op periode. Als ik een periode invul dan wil ik alleen huisjes te zien krijgen die in de ingevulde periode nog beschikbaar zijn.
De structuur ziet er nu zo uit:
HUISJES
----------------
ID
NAAM
HUISJES_RESERVERINGEN
-------------------------------------------
HUIS_ID
FROM (date)
TO (date)
In de werkelijke situatie heb ik al een aantal tabellen gejoind voor de huisinformatie compleet te krijgen, maar dat is voor hier even onbelangrijk.
Stel ik heb de volgende reservering voor huis #1:
07-01-2011 t/m 22-01-2011
Bij mijn filter geef ik in dat ik alle huizen wil zien die vrij zijn in de periode: 01-01-2011 t/m 08-01-2011. Dat bekent dat huis #1 niet in mijn resultaten lijst mag komen.
Ik handel dat nu niet af in de database maar in mijn code, onefficient en komt de snelheid niet ten goede vooral gezien het feit dat de database met huizen aan het groeien is. Ik weet zeker dat dit direct via SQL af te handelen is, maar weet niet hoe. De documentatie van MySQL helpt mij niet aan de juiste functies heb ik het idee.
Ik heb een tabel met huisjes en een tabel met al gemaakte reserveringen voor een bepaald huisje.
Nu ben ik de zoekfilter van de huisjes aan het uitbreiden met het filteren op periode. Als ik een periode invul dan wil ik alleen huisjes te zien krijgen die in de ingevulde periode nog beschikbaar zijn.
De structuur ziet er nu zo uit:
HUISJES
----------------
ID
NAAM
HUISJES_RESERVERINGEN
-------------------------------------------
HUIS_ID
FROM (date)
TO (date)
In de werkelijke situatie heb ik al een aantal tabellen gejoind voor de huisinformatie compleet te krijgen, maar dat is voor hier even onbelangrijk.
Stel ik heb de volgende reservering voor huis #1:
07-01-2011 t/m 22-01-2011
Bij mijn filter geef ik in dat ik alle huizen wil zien die vrij zijn in de periode: 01-01-2011 t/m 08-01-2011. Dat bekent dat huis #1 niet in mijn resultaten lijst mag komen.
Ik handel dat nu niet af in de database maar in mijn code, onefficient en komt de snelheid niet ten goede vooral gezien het feit dat de database met huizen aan het groeien is. Ik weet zeker dat dit direct via SQL af te handelen is, maar weet niet hoe. De documentatie van MySQL helpt mij niet aan de juiste functies heb ik het idee.