我正在开发用户事件的只读每周日历视图。 列是星期几(mon> sun) 行是时隙(8:00> 9:00,9:00> 10:00 ...从8AM到7PM)在mysql/php中生成每周日历
问题:什么是最好的办法来生成该用户日历:
选项1:纯SQL 我甚至不知道这是否可能,但我会发现它超级优雅:有MySQL生成一个表7列(日)和11行(时隙)并对每个时隙进行子查询,检查是否为该时隙/用户预订了会议。
选项2:php/mysql 有mysql只是检索预定/会议的会议,并与php生成的日历交叉。
选项1是否可能?如果是这样,是否资源密集?
谢谢 亚历山大
UPDATE:查询建议
这里是“选项2”查询我使用来获取预订的事件(教训在这种情况下:用户是一名教师)。
SELECT DISTINCT date, hour_from, hour_to, courses.description, courses.alias, teachers.name, locations.new_acronym
FROM timetables
INNER JOIN courses ON (courses.id=timetables.course_id)
INNER JOIN teachers ON (teachers.id=timetables.prof_id)
INNER JOIN locations ON (locations.id=timetables.location_id)
WHERE ((timetables.prof_id='$id')
AND (timetables.date >= '$starting_date')
AND (timetables.date < date_add('$starting_date', INTERVAL 7 day))) ;
我对查询的建议非常感兴趣,会使选项1工作!
如果您需要查询的suggetions,添加desc表,我(我们)会发布一些。 – 2009-08-15 11:58:33
只是相应地更新了问题。谢谢。 – pixeline 2009-08-15 14:17:38