Mailinglisten-Archive |
Hallo Liste ! Momentan programmiere ich einen Belegungskalender für ein kleines Hotel. Dieser Kalender greift auf Buchungsdatensätze in einer Tabelle 'zimmerbelegung' zurück. Die Tabelle 'zimmerbelegung' ist wie folgt aufgebaut. --------------------------------- | id | zimmernummer | von | bis | --------------------------------- Die Felder 'id' und 'zimmernummer' sind integer. Die Felder 'von' und 'bis' beinhalten einen Unix - Zeitstempel. Folgendes Problem habe ich. Um festzustellen, wie ein Zimmer im betreffenden Kalendermonat belegt ist habe ich folgende Abfrage. // folgende Zimmer stehen zur Verfügung $zimmer[0] = 101; $zimmer[1] = 102; $zimmer[2] = 103; ... // Anzahl der Tage im Monat $anzahl = date("t", mktime(0, 0, 0, 2, 1, 2005)); // Abfrage der Zimmerbelegung for($i = 0; $i < count($zimmer); $i++){ for($j = 1; $j <= $anzahl; $j++ ){ $jetzt = mktime(0,0,0,2,$j,2005); $sql = "select count(id) as treffer from zimmerbelegung where von < '".$jetzt."' and bis > '".$jetzt."' and zimmernummer = '".$zimmer[$i]."'"; } } Die Abfrage bezieht sich in diesem Beispiel nur auf den laufenden Monat. Das Problem besteht darin das für jedes Zimmer und jeder Tag des Monats eine Abfrage an die Datenbank generiert wird. Also bei 30 Zimmern und 30 Kalendertagen des Monats immerhin 900 Abfragen. Gibt es eine elegantere Möglichkeit um diese Abfrage zu realisieren. m.f.G. Stephan --- avast! Antivirus: Ausgehende Nachricht sauber. Virus-Datenbank (VPS): 0505-2, 05.02.2005 Getestet um: 08.02.2005 09:12:54 avast! - copyright (c) 2000-2004 ALWIL Software. http://www.avast.com
php::bar PHP Wiki - Listenarchive