我正在使用PHP制作日历并遇到了一些问题:
我希望日历更加自动化,因为我手动创建表并将时间和天数放在自己身上,这很好,但我的问题是我需要每个单独的SQL函数每个小时(从10:00-17:00)每一天,这似乎非常低效。
我的HTML表格代码是这样构建的:
<tr>
<td>
<span>
<p style="float:left">10:00</p>
<p style="float:right"> (<?php echo $var->monday_10; ?>)</p>
</span>
</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
我有这个PHP函数:
public function get_CalendarCount($conn)
{
// TODO: Comment this function
// TODO: If a booking goes over a time (eg. 13:00) then add to count
$sql =
"
SELECT DAYNAME(arrivalTime) AS day, COUNT(*) AS count
FROM bookings
WHERE HOUR(arrivalTime) = 10
AND DAYNAME(arrivalTime) = 'Monday'
";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
$this->monday_10 = $row["count"];
}
}
else
{
echo "0 results";
}
}
正如您所看到的,此示例(13.00)和日(星期一)的时间是手动输入的。如何更改此值以便从表中获取时间/日期并保持与每个时间相同的功能TD?
此外,我想改变我的SQL查询(如PHP get_CalendarCount函数所示),以便检查数据库中的预订是否超过一段时间(例如,到达时间10:00 - pickupTime 12:00 - 两者10:00和11:00需要计算,预订时间为10:00和11:00(每次1小时):
非常感谢帮助,因为我有点卡在这里,无法真正为这个解决方案找到任何东西。
答案 0 :(得分:1)
这不是回答逻辑,您应该更改但在查询中使用变量的问题,因此您不必手动将它们放入。有关制作hour
和{的问题{1}}变量需要更改此内容:
dayname
成:
public function get_CalendarCount($conn)
{
$sql ="SELECT DAYNAME(arrivalTime) AS day, COUNT(*) AS count
FROM bookings WHERE HOUR(arrivalTime) = 10 AND DAYNAME(arrivalTime) = 'Monday'";