Ik ben nog steeds bezig met het hotel systeem.

Ik wil een query uitvoeren die kijkt welke kamers er beschikbaar zijn.

In de hotelkamer tabel heb ik twee date velden:
date_from en date_fill (datum begin, datum einde)

Nu wil ik dat wanneer er een nieuwe reservering geplaatst worden, dat hij in de database zoekt op twee data die via een formulier gepost worden, en kijkt of er nog kamers beschikbaar zijn.

Wat research gedaan en kom wel de MySQL functie BETWEEN tegen, alleen kan ik alleen voorbeelden vinden van; ik wil records tussen deze en deze datum, zoekende op 1 datum veld.

Ook heb ik gelezen dat voor het beste resultaat de MySQL functie CAST gebruikt kan worden.

Concreet:
Ik wil een formulier posten met 2 data (bijv. 10-09-2010 t/m 12-09-2010)
Hij moet dan in de database kijken of er beschikbaarheid is tussen die twee data
De velden in de tabel hotelkamers zijn: date_from en date_till

Ik heb echt geen idee hoe ik dit het beste zou moeten aanpakken, hoop dat iemand me kan helpen.
Dan check je of ze aan beide voldoen:

SELECT * FROM `kamers` WHERE 
`date_from` BETWEEN `2010-09-10` AND `2010-09-12` 
OR `date_from` BETWEEN `2010-09-10` AND `2010-09-12`


Dan krijg je de records terug die daaraan voldoen?
Je gaat iets zelf moeten maken. Het zijn een heel deel controles die je per kamer gaat moeten uitvoeren. Ik heb een klein tekeningske gemaakt waar je de verschillende gevallen op kan zien waarvoor je moet controleren. De controles betreffen dan het overschrijden van begin- en eind-data van het verblijf met de opgevraagde data.


Hier mee zou je het moeten kunnen doen.

Met vriendelijke groeten,
Jens
Bas Kreleger op 26/08/2010 11:40:45

Dan check je of ze aan beide voldoen:

SELECT * FROM `kamers` WHERE 
`date_from` BETWEEN `2010-09-10` AND `2010-09-12` 
OR `date_from` BETWEEN `2010-09-10` AND `2010-09-12`


Dan krijg je de records terug die daaraan voldoen?


Backtics horen daar niet. En waarom twee keer dezelfde date_from met dezelfde BETWEEN?
Dat moet natuurlijk date_till zijn.

Reageren