【问题标题】:Use PHP to highlight cells in table depending on entry to database [closed]使用PHP根据数据库条目突出显示表格中的单元格[关闭]
【发布时间】:2016-01-22 08:39:26
【问题描述】:

我正在尝试在我的网页上显示各种时间表。我需要使用 PHP 来突出显示表格单元格,具体取决于它们是否有今天日期的数据库条目。我目前有一张桌子,上面有房间,下面有时间:

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 新手,所以不完全确定实现我需要的最佳方法是什么。

我到处寻找解决方案,但没有找到可以回答我的问题的方法。如果有人有任何想法或可以建议我最好的方法,我将不胜感激。

【问题讨论】:

  • 您当前是否使用 PHP 生成此表?如果是这样,请编辑您的问题以添加该 PHP 代码。修改它来做你想做的事情应该很容易。如果不是,那么这个问题实在是太笼统了。
  • 您能否真正定义“正确的房间列和正确的时间行”的含义。目前尚不清楚应该突出显示什么以及何时
  • @Bizmate 抱歉,这有点含糊。我添加了一张图片来说明我的意思

标签: php html mysql sql html-table


【解决方案1】:

如果您的问题更多是关于如何与 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>&nbsp;</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'>&nbsp;</td>";
            }
            else{
                echo "<td class='notAvailable'>&nbsp;</td>";
            }
        }
    ?>
    </tr>
<?php
}

?>
</table>

在上面的脚本中,您可以看到我如何在变量中表示房间的可用性(假设您从数据库中获取此数组)。此外,时间(例如业务/时段的时间)也在数据库中。

一般而言,在数据库中,您会拥有我从答案中跳过的关系和更详细的内容。

脚本会显示一个类似于您在问题中添加的表格,其中分配房间的单元格用浅蓝色背景标记。

您可以在PHP Fiddle 上复制并运行它以查看输出。

如果是你要找的,请告诉我

【讨论】:

  • 是的,作为一个起点,这是完美的。我只是不确定显示预订的最佳方法。这很有帮助。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 2018-05-21
  • 1970-01-01
  • 2017-12-19
  • 1970-01-01
相关资源
最近更新 更多