我有一个事件表:
字段是:名称、开始日期和结束日期。
在我的网页中,我现在想绘制一个整月的日历
为了创建这个页面,我正在迭代一个月中的几天,并想检查这些天是否已经预订了一个活动。例如。如果日期出现在表中任何记录的开始日期和结束日期之间。
我很确定我不想运行 31 个查询,所以在实现这一目标的最佳方法之后?
您不需要 31 次查询,您可以获取整个月并在您的 PHP 代码中完成其余的工作。
SELECT
`name`,
`start-date`,
`end-date`
FROM
`table of events`
WHERE
`start-date` BETWEEN '2013-10-01 00:00:00' AND '2013-10-31 23:59:59'
OR
`end-date` BETWEEN '2013-10-01 00:00:00' AND '2013-10-31 23:59:59';
它将为您提供有关在给定时间段内开始或结束的所有事件的信息。随心所欲地使用它。
$query = "SELECT name, start-date, end-date from Events WHERE (start-day >= $firstDayOfMonth AND start-day <= $lastDayOfMonth) OR (end-day >= $firstDayOfMonth AND end-day <= $lastDayOfMonth)";
这将为您提供在给定月份开始或结束的所有事件。
$firstDayOfMonth, $lastDayOfMonth - 你应该根据用户输入在你的 php 代码中计算这些。