Abfrage innerhalb eines Zeitraums

mcphilli

Erfahrenes Mitglied
hallo,
ich speicher in einer datenbank den tag, monat und das jahr von wann an, zum beispiel ein zimmer, belegt ist und bis wann es belegt ist. nun möchte ich mit einer abfrage testen ob das zimmer noch frei ist oder nicht.

Beispiel:
das Zimmer ist vom 28.06.2002 bis zum 04.07.2002 belegt. nun kommt jemand und startet die abfrage, ob das zimmer vom 02.07.2002 bis zum 05.07.2002 noch frei ist.

wie macht man nun die abfrage? ich bedanke mich schon einmal im voraus.

mfg
mcphilli
 
speicher doch das datum zusammen in einem feld ab. also einfach ein feld mit dem datum, von wann das zimmer belegt ist, und ein feld mit dem datum, wann es wieder frei ist.
dann kannst du mit der abfrage einfach grösser und kleiner das entsprechende datum überprüfen. dazu brauchst du dann natürlich noch eine kleine plausibilität, mit der verhindert wird, dass das feld "belegt_ab" kleiner ist als das feld "belegt_bis".
 
versteht ich das jetzt richtig, dass man einfach sagen kann

Beispiel:
PHP:
$frei=03.07.2002";
if($frei < "05.07.2002"){
    echo 'Zimmer frei';}
else{
    echo 'belegt';}
 
nicht ganz. es gibt spezielle funktionen, mit denen man sich ein datum zusammenbauen und das dann mit einem anderen vergleichen kann. aber eigentlich meinte ich das sowieso so, dass du nur die freien zimmer abfragst ausgibst.
 
es soll ja auch vorreservierungen geben und dazu müsste man dann doch die beiden zeitpunkte vergleichen. kannst du mir vielleicht die funktion nennen, mit der man sich ein datum zusammenbauen lassen kann?
 
also ich habe mir das jetzt 3mal durchgelesen und bin immer noch nicht wirklich schlauer. so wie ich das bis jetzt verstanden habe macht man zu dem datum welches man haben möchte einen timestamp. aber wie man diesen timestamp generiert weiß ich nicht. könntest du mir vielleicht ein beispiel geben wie man sowas macht?
 
so jetzt habe ich das problem gelöst. ich habe das anreisedatum und das abreisedatum in einen timestamp umgewandelt. dann frage ich ab wieviel noch frei ist und dann wird je nach ergebnis dann ein ereignis ausgelöst.

PHP:
$stampanreise = strtotime("22 December 2002");
$stampabreise = strtotime("25 December 2002");

der monat muss unbedingt im englischen format angegeben werden, denn sonst bekommt man -1 heraus und keinen timestamp.
danke nochma für deine hilfe.
 
Zurück