自定义单元格颜色基于内部包含的mysql结果

时间:2013-06-04 15:26:43

标签: php mysql

我有一个使用php / html的页面,它显示了使用5个MYSQL结果集构建的8个表的仪表板。 我想根据列单元格中包含的值更改各列的背景颜色。 我已经看到了一些类似主题的线索让我走得很远,但是他们都没有能够通过我的具体问题与我交谈,所以我希望有人可以启发我。 :)

问题1。 下面的代码使用sorta,但它只使用第一个结果值来定义整个列的单元格颜色,而不是单独定义列中的每一行。

第2期。 即使它正在为一个结果集工作,我也不确定如何实现它来处理页面上所有其他所需的结果集而不复制和粘贴代码片段8次,每个不同的结果行分配给= $ cellcolor。

如果相关,我想要影响的行是......

  • $ row_recordset1 ['check1']
  • $ row_recordset1 [ 'CHECK2']
  • $ row_recordset1 ['check3']
  • $ row_recordset2 [ '等级']
  • $ row_recordset3 ['check1']
  • $ row_recordset3 [ 'CHECK2']
  • $ row_recordset3 [ 'check3']
  • $ row_recordset4 [ '等级']

php Snippet ...

<?php
$cellcolor=$row_recordset2['rating'];
if (($cellcolor <= 100) && ($cellcolor > 85))
$color = "#C98910";
else if (($cellcolor <= 85) && ($cellcolor > 70))
$color = "#A8A8A8";
else if (($cellcolor <= 70) && ($cellcolor > 65))
$color = "#965A38";
else if ($cellcolor <= 65)
$color = "#000000";
?>

使用代码段

<table border="1">
<tr><td class="table_data">rating</td></tr>
<?php do { ?>
<tr class="profile" align="center">
<td class="rating" bgcolor=<?php echo $color; ?>><a href="rating.php?TargetEvent=<?php echo $row_recordset2['code1']; ?>"><?php echo $row_recordset2['rating']; ?>
</tr>
<?php } while ($row_recordset2 = mysql_fetch_assoc($recordset2)); ?>
</table>

2 个答案:

答案 0 :(得分:0)

如果您希望每个单元格可能具有不同的颜色,则必须包含在循环中设置颜色的逻辑。如果你有多个循环并且需要多次这样做,我建议将颜色逻辑放在一个函数中并在循环中调用它:

在某处定义功能:

<?php
    function get_color($cellcolor)
    {
        $color = "#ffffff";
        if (($cellcolor <= 100) && ($cellcolor > 85)) {
            $color = "#C98910";
        } else if (($cellcolor <= 85) && ($cellcolor > 70)) {
            $color = "#A8A8A8";
        } else if (($cellcolor <= 70) && ($cellcolor > 65)) {
            $color = "#965A38";
        } else if ($cellcolor <= 65) {
            $color = "#000000";
        }
        return $color
    }
?>

通过调用获取颜色更新了代码段:

<?php do { ?>
<tr class="profile" align="center">
<td class="rating" bgcolor=<?php echo get_color($row_recordset2['rating']); ?>><a href="rating.php?TargetEvent=<?php echo $row_recordset2['code1']; ?>"><?php echo $row_recordset2['rating']; ?>
</tr>
<?php } while ($row_recordset2 = mysql_fetch_assoc($recordset2)); ?>

这是一个简单的例子,说明如何在不知道确切结构/框架的情况下完成它。希望它能让你指向正确的方向......

答案 1 :(得分:0)

php Snippet ...

<?php
$cellcolor=$row_recordset2['rating'];
if (($cellcolor <= 100) && ($cellcolor > 85))
$color = "Orange";
else if (($cellcolor <= 85) && ($cellcolor > 70))
$color = "Grey";
else if (($cellcolor <= 70) && ($cellcolor > 65))
$color = "Brown";
else if ($cellcolor <= 65)
$color = "Black";
?>

使用代码段

<table border="1">
<tr><td class="table_data">rating</td></tr>
<?php do { ?>
<tr class="profile" align="center">
<td class="rating<?php echo $color; ?>" ><a href="rating.php?TargetEvent=<?php echo $row_recordset2['code1']; ?>"><?php echo $row_recordset2['rating']; ?>
</tr>
<?php } while ($row_recordset2 = mysql_fetch_assoc($recordset2)); ?>
</table>

css文件......

.ratingOrange {
   background-color: #C98910;
}

.ratingGrey{
   background-color: #A8A8A8;
 }

.ratingBrown{
   background-color: #965A38;
}

.ratingBlack{
   background-color: #000000;
   color: #ffffff;
}