我正在为一家刚刚开始工作的公司开展一个项目,并且我已经分配了这个数据可视化工具。我使用PHP从MySQL数据库中提取信息并将数据嵌入到HTML-CSS表中。
此表的四个特定列将始终包含以下字符串之一:“red”,“green”,“yellow”和“gray”。我试图在PHP中编写一个脚本,查找包含字符串'green'的所有表格单元格,并为该表格单元格指定一个名为'green_circle'的类。我的计划是在该类的所有单元格中放置一个绿色圆圈(最有可能是.png)。我希望这样做,以便更有效地查看信息。我想为这四种颜色中的每种颜色做这件事。
这是表体的样子:
<tbody>
<?php
while ($row6 = mysql_fetch_assoc($orl_error)) {
echo '
<tr>
<td>'.$row6["project"].'</td>
<td>'.$row6["participant"].'</td>
<td>'.$row6["reel"].'</td>
<td>'.$row6["machine"].'</td>
<td>'.$row6["qc_gsr"].'</td>
<td>'.$row6["qc_hr"].'</td>
<td>'.$row6["qc_acz"].'</td>
<td>'.$row6["qc_bre"].'</td>
</tr> ';
}
?>
</tbody>
字符串'green','yellow','red'和'gray'总是在4个单元格中找到,名称以'qc_'开头,所以qc_gsr,qc_hr,qc_acz,qc_bre。其他4列永远不会包含任何颜色字符串。我希望我提供的信息足够清楚,以便有人能够解决我一直遇到的这个问题。
答案 0 :(得分:2)
尝试这样的事情:
<?php
$keys = array('qc_gsr', 'qc_hr', 'qc_acz', 'qc_bre');
while ($row6 = mysql_fetch_assoc($orl_error)) {
echo '
<tr>
<td>'.$row6["project"].'</td>
<td>'.$row6["participant"].'</td>
<td>'.$row6["reel"].'</td>
<td>'.$row6["machine"].'</td>';
foreach($keys AS $key){
echo '<td class="'.$row6[$key].'">'.$row6[$key].'</td>';
}
echo '</tr> ';
}
?>
答案 1 :(得分:0)
至少可以说,这不是一项容易的任务,但我认为你可以通过一个基于数组的基于迭代的迭代来完成它,并使用array_keys,implode和{{ 3}}功能。基本上,目标是创建一个关联数组,将关键字作为键,将所需的类作为值链接。然后我和他们一起制作#\b(key1|key2|key3)\b#i
形式的正则表达式,它将在字符串中搜索任何关键字。使用preg_match的$matches
参数,我获得实际匹配的文本,并使用preg_match函数将其转换为小写,并使用$classes
数组将其转换为期望的课程。
<tbody>
<?php
$keys = array('project'
, 'participant'
, 'reel'
, 'machine'
, 'qc_gsr'
, 'qc_hr'
, 'qc_acz'
, 'qc_bre'
);
$classes = array('yellow' => 'yellow_square'
, 'green' => 'green_circle'
);
$class_keys = '#\b(' . implode('|', array_keys($classes)) . ')\b#i';
while ($row6 = mysql_fetch_assoc($orl_error)) {
echo '<tr>';
foreach($keys as $key){
$class = '';
if(preg_match($class_keys, $row6[$key], $match)){
$class = $classes[strtolower($matches[0])];
}
echo "<td class=\"$class\" >".$row6[$key].'</td>';
}
echo '</tr> ';
}
?>
</tbody>
为了简洁起见,我做了一些假设:
qc_
字段只包含一个必要的关键字。我没有假设您现有的$ row6数组的订单。虽然select语句可能会隐藏一些订单,这会消除$keys
变量,并允许您将foreach($keys as $key)
更改为foreach ($row6 as $key => $value)
,然后您可以更改任何{{1}只需$row6[$key]
。
编辑:要直接插入img标记,请执行以下操作:
value