0
我有一个在线mysql预订系统数据库,我试图用this tutorial链接到一个可视php日历。检查MySQL表中的任何记录是否存在于特定日期
每天在日历上由<td>
表示,我使用以下PDO查询来确定每天的背景颜色(如果可用=无颜色,如果不是红色)。
的一个并发症,我已经是,我需要在视觉上显示1个预订结束一天X,并显示另一个预订开始在同一天十
$query_params = array(
':campervan_id' => $_GET['campervan'],
':day' => $date_form.($i - $startday + 1)
);
$query = "
SELECT
car,
booking_id,
DATE_FORMAT(start_date, '%e/%c') AS s_d,
DATE_FORMAT(end_date, '%e/%c') AS e_d
FROM
bookings as bb
INNER JOIN
reservation as br ON bb.booking_id=br.bookings_id
INNER JOIN
cars as bc ON br.car_id=bc.car_id
WHERE
bc.campervan_id=:campervan_id AND
:day BETWEEN bb.start_date AND bb.end_date
";
与当时我使用下列到输出表格单元格的结果:
if($i < $startday) {
echo "
<td>
</td>
";
}
else {
// IF DAY IS AVAILABLE
if(!$rows) {
$color = "none";
}
// IF DAY IS UNAVAILABLE
else {
$color = "#F3747F";
}
$dayMonth = ($i-$startday + 1)."/$cMonth";
// If DAY FALLS ON A START PICK UP DATE
if ($dayMonth == $rows['s_d']) {
$back = "background-image:url(\"images/morning_back.png\");";
$color = "none";
}
// If DAY FALLS ON A END DROP OFF DATE
else if($dayMonth == $rows['e_d']) {
$back = "background-image:url(\"images/afternoon_back.png\");";
$color = "none";
}
// **************************************************
// IF FALLS ON BOTH A START AND END DATE????????
else if($dayMonth == ($rows['s_d'] && $rows['e_d'])) {
$back = "background-image:url(\"images/full_back.png\");";
$color = "none";
}
// **************************************************
else {
$back = "";
}
echo "
<td align='center' valign='middle' height='100px' width='134' style='color:#FFFFFF; background-color:".$color."; ".$back." border:1px solid white;'>
".($i-$startday + 1)."
</td>
";
}
这适用于视觉显示上的每个预订,对于每一个结束日期的开始日期对角线分割的背景图像,但我不能让天那里既是一个结束预订和另一个的开始显示正确。
我认为这是因为我最初的查询只查看一个预订记录 - 我需要它来识别所有这些记录,任何人都可以帮忙吗?
这是我需要的,谢谢! – 2013-03-13 11:03:28