Hello there,
I have a task to modify a quite problematic calendar that wasn't created
by me -- currently only weeks and months are shown (for that, all days
of the week/month are looped through). For every day, 7 queries are done
-- one for each table (there are different tables for weekly, monthly,
annually etc recurring events). When there is an event for that day in a
particular table, then the DetailsID will be returned and the details
table will be queried about closer information regarding the event
(time, name, desc etc).
I don't really think that looping though the entire year would be such a
wise idea (that would be 365 * 7 queries sent to mySQL database). Can
you think of an alternative?
The queries are as shown below.
/////// nr. 1
SELECT CalendarDetailsID
FROM phpCalendar_Daily
WHERE ".$LocQuery." AND Active = '1' AND
( ('$queryDate' = StartDate AND StopDate = '0000-00-00') OR
(StopDate != '0000-00-00' AND '$queryDate' BETWEEN StartDate AND
StopDate) )
/////// nr. 2
SELECT CalendarDetailsID
FROM phpCalendar_Daily
WHERE ".$LocQuery." AND Active = '1' AND
( ('$queryDate' = StartDate AND StopDate = '0000-00-00') OR
(StopDate != '0000-00-00' AND '$queryDate' BETWEEN StartDate AND
StopDate) )
/////// nr. 3
SELECT CalendarDetailsID, DaysOfWeek
FROM phpCalendar_Weekly
WHERE ".$LocQuery." AND Active = '1' AND
( ('$queryDate' >= DisplayStart AND DisplayStop = '0000-00-00')
OR
(DisplayStop != '0000-00-00' AND '$queryDate' BETWEEN
DisplayStart AND DisplayStop) )
/////// nr. 4
SELECT CalendarDetailsID
FROM phpCalendar_Monthly
WHERE ".$LocQuery." AND Active = '1' AND DayOfMonth = '$q' AND
( ('$queryDate' >= DisplayStart AND DisplayStop = '0000-00-00')
OR
(DisplayStop != '0000-00-00' AND '$queryDate' BETWEEN
DisplayStart AND DisplayStop) )
/////// nr. 5
SELECT CalendarDetailsID
FROM phpCalendar_Yearly
WHERE ".$LocQuery." AND Active = '1' AND DayOfMonth = '$q' AND
Month = '$Month' AND
( ('$queryDate' >= DisplayStart AND DisplayStop = '0000-00-00')
OR
(DisplayStop != '0000-00-00' AND '$queryDate' BETWEEN
DisplayStart AND DisplayStop) )
/////// nr. 6
SELECT CalendarDetailsID, WeekDays
FROM phpCalendar_PeriodicalMonthly
WHERE ".$LocQuery." AND Active = '1' AND WeekNumber =
'$numOfTodays' AND
( ('$queryDate' >= DisplayStart AND DisplayStop = '0000-00-00')
OR
(DisplayStop != '0000-00-00' AND '$queryDate' BETWEEN
DisplayStart AND DisplayStop) )
/////// nr. 7
SELECT CalendarDetailsID, WeekDays
FROM phpCalendar_PeriodicalYearly
WHERE ".$LocQuery." AND Active = '1' AND WeekNumber =
'$numOfTodays' AND Month = '$Month' AND
( ('$queryDate' >= DisplayStart AND DisplayStop = '0000-00-00')
OR
(DisplayStop != '0000-00-00' AND '$queryDate' BETWEEN
DisplayStart AND DisplayStop) )
Are there any wiser ways to solve this instead of making 2555 queries
per time the calendar will be requested by a visitor???
TIA
Yours,
Lauri
--
Tharapita Creations
[dynamic web applications]
[EMAIL PROTECTED]
Mobile: +372 53 410 610
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php