我正在使用来自以下查询的数据填充 HTML 表:
$content_downloads = mysql_query( "SELECT
s.site, s.machine, d.projectid, d.directorySize, d.connectivityError,
d.blocked, d.blockedBy, d.blockedSince, d.errorString, d.dashboardTimeStamp
FROM rtcdb.site_machines s
LEFT JOIN rtcdb.downloadstatuses d
on (s.site = d.site and s.machine = d.machine)
where s.site in (select d2.site from rtcdb.downloadstatuses d2
where d2.dashboardTimeStamp > (SELECT DATE_ADD(max(dashboardTimeStamp),INTERVAL -1 DAY)
from rtcdb.downloadstatuses)) order by s.site, s.machine asc", $con) or die(mysql_error());
此查询将进入基于以下 HTML/PHP 的 HTML 表:
<table>
<thead>
<tr>
<th>Site</th>
<th>Machine</th>
<th>Project ID</th>
<th>Folder Size</th>
<th>Error Description</th>
</tr>
</thead>
<tbody>
<?php
while ($row = mysql_fetch_assoc($content_downloads)) {
$error_string = "";
if ($row["connectivityError"] == true ) {
$error_string = "COULD NOT CONNECT: " . $row["errorString"];
}
elseif ($row["blocked"] == true ) {
$error_string = "BLOCKED BY LOCK OWNED BY: " . $row["blockedBy"] . " " . $row["blockedSince"];
}
echo '
<tr>
<td>'.$row["site"].'</td>
<td>'.$row["machine"].'</td>
<td>'.$row["projectid"].'</td>
<td>'.$row["directorySize"].'</td>
<td style = "text-align: left; color: red;">'.$error_string.'</td>
</tr> ';
}
?>
</tbody>
</table>
此表中的错误描述列很少有内容。如您所见,当它发生时,PHP 条件函数(if 和 ifelse 函数)会在错误描述之前放置一个语句,以使描述更易于理解。您可能会注意到的一件事是我将错误描述的文本涂成红色。我正在努力解决的问题是,当该行中的错误描述单元格具有值时,有选择地使用黄色背景色设置整行的样式。换句话说,当我写的两个条件为真时,我想让包含该错误描述的行的背景颜色为黄色。
看起来很简单,但我尝试了各种选择,但似乎无法弄清楚。任何提示堆栈溢出?