我有一个日历,我需要填充从MySQL数据库中提取的数据。
查询响应将是一个引用一个月中几个日期的行数组。我必须将每行的数据放入与其日期对应的数据中。日期信息在MySQL中存储为“datetime”。
将在此处生成将保存数据的日历元素:
for ($day = 1; $day <= $totaldays; $day++) {
$day_secs = mktime(0,0,0,$month,$day,$year);
if ($day_secs >= $yesterday) {
if ($day_highlight && ($day == $this_day)) {
print "<td class=\"today\"><span>$day</span><a href=\"CPD_activity_cal_new.php?day=$day&month=$month&year=$year\" class=\"actilink\">Add Activity</a>
</td>";
} else {
print "<td class=\"monthday\"><span>$day</span><a href=\"CPD_activity_cal_new.php?day=$day&month=$month&year=$year\" class=\"actilink\">Add Activity</a></td>";
}
} else {
print "<td class=\"monthday\"><span>$day</span><a href=\"CPD_activity_cal_new.php?day=$day&month=$month&year=$year\" class=\"actilink\">Add Activity</a></td>";
}
$day_offset++;
// start a new row each week //
if ($day_offset == 7) {
$day_offset = 0;
if ($day < $totaldays) { print "</tr>\n<tr>"; }
}
}
我有三个主要问题:
我对此有任何建议非常感激。
答案 0 :(得分:0)
我不太确定数据是什么样的,你的逻辑对于我完全理解有点不合适,但这基本上就是我看到它的工作方式:
$result = mysql_query("SELECT *, DAY('date') AS day FROM table WHERE ... yadda, yadda");
// Reorganize the events into an array keyed by day of the month
$events = array();
while ($row = mysql_fetch_array($result)) {
if (!$events[$row['day']]) $events[$row['day']] = array();
$events[$row['day']][] = $row;
}
// Build calendar
for ($day = 1; $day <= $totaldays; $day++) {
// logic for outputting standard calendar format
if ($events[$day]) {
foreach ($events[$day] AS $row) {
// output events
}
}
}