根据mysql值高亮显示单元格



我已经获取了如下的mysql结果。。我需要做的是,用阈值检查每个$row["$date07"]值,并突出显示单元格。

while ($row = $result -> fetch_assoc())
{   
$table_rows[$rowId] .= '<tr>
<td style="text-align:center"><b>'.$row['table_name'].'</td>
<td style="text-align:center;">'.$row["$date07"].'</td>
<td style="text-align:center;">'.$row["$date06"].'</td>
<td style="text-align:center;">'.$row["$date05"].'</td>
<td style="text-align:center;">'.$row["$date04"].'</td>
<td style="text-align:center;">'.$row["$date03"].'</td>
<td style="text-align:center;">'.$row["$date02"].'</td>
<td style="text-align:center;">'.$row["$date01"].'</td>
</tr>';
$table_rows[$rowId]++;  



}

这是我的尝试。。。

if($row["$date07"]<$row["threshold"]){

$table_rows[$rowId] .= '<tr>
<td style="text-align:center"><b>'.$row['table_name'].'</td>
<td style="text-align:center;background-color: red;">'.$row["$date07"].'</td>
<td style="text-align:center;">'.$row["$date06"].'</td>
<td style="text-align:center;">'.$row["$date05"].'</td>
<td style="text-align:center;">'.$row["$date04"].'</td>
<td style="text-align:center;">'.$row["$date03"].'</td>
<td style="text-align:center;">'.$row["$date02"].'</td>
<td style="text-align:center">'.$row["$date01"].'</td>
</tr>';
$table_rows[$rowId]++;  



}

正如你所看到的,如果我按照这种方式来实现我所需要的,我需要数千个if语句(我需要检查所有7天,也需要考虑一天以上(。所以我需要找到一种更好的方式来实现我所需要的。。

这样做可能吗?我在回显TD中发现了一些有用的线程if-else语句,但需要使用echo。有没有什么可以通过某种优化的方法来实现我所需要的?

更新:

在突出显示单元格时,我还需要考虑以下所有情况。

1( 突破阈值一天。(例如:2022-08-25已经突破了突出显示的需要(

2( 突破阈值超过一天(例如:2022-08-25和2022-08-24已突破。需要突出显示两者(

3( 突破阈值两天,但不相邻(例如:2022-08-25和2022-08-21。仍需强调(

4( 超过两天可能会被破坏。。需要突出显示所有内容。

您可以在字符串中使用三元运算符来检查每天的阈值,并在需要的地方输出额外的样式指令,比如:

$table_rows[$rowId] .= '<tr>
<td style="text-align:center"><b>'.$row['table_name'].'</td>
<td style="text-align:center;'.($row["$date07"] < $row["threshold"] ? "background-color:red;" : "").'">'.$row["$date07"].'</td>
<td style="text-align:center;'.($row["$date06"] < $row["threshold"] ? "background-color:red;" : "").'">'.$row["$date06"].'</td>
<td style="text-align:center;'.($row["$date05"] < $row["threshold"] ? "background-color:red;" : "").'">'.$row["$date05"].'</td>
<td style="text-align:center;'.($row["$date04"] < $row["threshold"] ? "background-color:red;" : "").'">'.$row["$date04"].'</td>
<td style="text-align:center;'.($row["$date03"] < $row["threshold"] ? "background-color:red;" : "").'">'.$row["$date03"].'</td>
<td style="text-align:center;'.($row["$date02"] < $row["threshold"] ? "background-color:red;" : "").'">'.$row["$date02"].'</td>
<td style="text-align:center;'.($row["$date01"] < $row["threshold"] ? "background-color:red;" : "").'">'.$row["$date01"].'</td>
</tr>';

演示:https://3v4l.org/NV8vF

最新更新