我的日历按照书面方式工作得很好,但是如果我在同一天添加另一个事件,它只会显示数据库中记录的第一个事件。我需要能够在同一天显示多个活动。
我尝试在代码中使用 for/next 循环和 while 循环来从数据库中提取信息。任何一种都无法按照代码的编写方式工作。此链接将向您显示所写的工作日历:Grims World 博客
这是我的代码:
'Sun', '2'=>'Mon', '3'=>'Tue', '4'=>'Wed', '5'=>'Thu', '6'=>'Fri', '7'=>'Sat');
$day=date('d');
$endDate=date('t',mktime(0,0,0,$cMonth,$day,$cYear));
echo "\n";
echo "
\n";
echo "\n";
foreach ($short_days as $key=>$val) {
echo "| ".$val." | \n";
}
echo " \n";
$s=date('w', mktime (0,0,0,$cMonth,1,$cYear));
for ($ds=1; $ds<=$s; $ds++) {
echo " | \n";
}
for ($d=1; $d<=$endDate; $d++) {
if (date('w',mktime (0,0,0,$cMonth,$d,$cYear)) == 0) {
echo " \n";
}
$events = mysqli_query($connect, "SELECT * FROM `posts` WHERE SUBSTR(date,7,4)='$cYear' AND month='$cMonth' AND day='$d'");
$rows = mysqli_fetch_assoc($events);
$post_id = $rows['id'];
$post_title = $rows['title'];
$evday = $rows['day'];
if ($evday) {
echo "| \n";
} elseif ($d == $day && $cMonth == date('m')) {
echo " | \n";
} else {
echo " | \n";
}
if ($d == $day && $cMonth == date('m') && $d <> $evday) {
$d = str_pad($d,2,'0',STR_PAD_LEFT);
echo "$d\n";
} elseif ($d == $day && $cMonth == date('m') && $d == $evday) {
$d = str_pad($d,2,'0',STR_PAD_LEFT);
echo "$d\n";
} elseif ($evday) {
$d = str_pad($d,2,'0',STR_PAD_LEFT);
echo "$d\n";
} else {
$d = str_pad($d,2,'0',STR_PAD_LEFT);
echo "$d\n";
}
echo " | \n";
if (date('w',mktime (0,0,0,$cMonth,$d,$cYear)) == 6) {
echo " ";
}
}
echo "
|
| \n";
echo "
\n";
echo "\n";
?>