我正在尝试在我的网页上显示某种时间表。我需要使用 PHP 来突出显示表格单元格,具体取决于它们是否有今天日期的数据库条目。我目前有一张 table ,上面有房间,侧面有时间,如下所示:
echo "<table border-1>
<tr>
<th></th>
<th>B-12</th>
<th>G.05</th>
<th>G.06</th>
<th>1.04</th>
<th>1.05</th>
<th>1.06</th>
<th>2.04</th>
<th>2.05</th>
<th>2.06</th>
<th>3.04</th>
<th>3.05</th>
<th>3.06</th>
</tr>
<tr>
<th>9.00</th>
<td></td>
</tr>
<tr>
<th>9.30</th>
<td></td>
</tr>
<tr>
<th>10.00</th>
<td></td>
</tr>
<tr>
<th>10.30</th>
<td></td>
</tr>";
我需要读取数据库中的条目,并根据条目日期在正确的房间列和正确的时间行中突出显示相应的单元格, like this
有没有办法在 PHP 中做到这一点?我这一切都错了吗?我是 PHP 新手,所以不完全确定实现我需要的最佳方法是什么。
我到处寻找解决方案,但没有找到能回答我问题的方法。如果有人有任何想法或可以建议我最好的方法,我将非常感激。
最佳答案
如果您的问题更多是关于如何与 mysql 交互或如何显示每个房间的占用率/可用性,我仍然有点困惑。
我认为是后者。我还假设您知道如何从 mysql 获取数据,并且您只需要一种显示占用率的方法。
<?php
$roomsAvailability = [
'1' => ['9:30', '10:30'],
'2' => ['10:00'],
'3' => ['9:00', '11:00'],
];
$times = ['8:30', '9:00','9:30', '10:00', '10:30', '11:00'];
?>
<style>
table, th, td {
margin:5px;
border: 1px solid black;
}
.available {
background-color: lightblue;
}
</style>
<table>
<tr><th> </th><th>g1</th><th>g2</th><th>g3</th></tr>
<?php
foreach($times as $time)
{?>
<tr>
<?php
echo "<td>$time</td>";
foreach($roomsAvailability as $roomNumber => $roomAvailability)
{
if(in_array($time , $roomAvailability))
{
echo "<td class='available'> </td>";
}
else{
echo "<td class='notAvailable'> </td>";
}
}
?>
</tr>
<?php
}
?>
</table>
在上面的脚本中,您可以看到我如何表示房间变量中的可用性(假设您从数据库中获取此数组)。此外,时间(例如业务/时段的时间)也在数据库中。
一般来说,在数据库中,您会拥有我从答案中跳过的关系和更复杂的东西。
该脚本会显示一个与您在问题中添加的表格类似的表格,其中分配的房间单元格以浅蓝色背景标记。
您可以在 PHP Fiddle 上复制并运行它查看输出。
请告诉我这是否是您正在寻找的内容
关于php - 使用 PHP 根据数据库条目突出显示表中的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34935764/