Re: amount of overlaping dates

From: Date: Thu, 03 Dec 2009 16:18:00 +0000
Subject: Re: amount of overlaping dates
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-300243@lists.php.net to get a copy of this message
2009/12/3 Merlin Morgenstern <merlin_x@fastmail.fm>: > That is what I thought first, too! But this does not work correct as there > might be a booking starting for example tomorrow. There needs to be free > place for the entire booking period. Ah, of course. I see the problem now. It's an odd situation, because you don't seem to care if room A is available for the first half of the period, and room B is available for the second half - as long as the number of rooms never goes above 3. Checking for a single room being available continuously for that entire period would be a lot simpler. If your resolution is 1 minute, then I'd run the query for every minute of the event. 5 minute or 15 minute resolution would mean doing far fewer queries. If the event count ever goes above 3, you can short-circuit. Something like (pseudo-code)... function is_room_available($start, $end, $resolution, $max) { for($i = $start; $i < $end; $i+=$resolution) { $count = SELECT COUNT(*) FROM event WHERE start <= $i AND end >= $i if($count => $max) { return false; } } return true; } But I think turning it around might be simpler. Think: I have three rooms. For each room, can it accept a 4 hour booking starting at time $time? Then the number of queries is a function of the number of rooms, rather than the length of the meeting.

« previous php.general (#300243) next »