基于百分位数的颜色代码表单元格

时间:2015-03-24 20:09:59

标签: php html mysql css

我使用以下MySQL查询将 DAYOFWEEK 分组的 COUNT 输出在一天中的不同时段输入到使用php生成的html表中:

SELECT HOUR(`order_date`) as Hour,

Count(case when DAYOFWEEK(`order_date`) = 1 then `id` end) As Suday,
Count(case when DAYOFWEEK(`order_date`) = 2 then `id` end) As Monday,
Count(case when DAYOFWEEK(`order_date`) = 3 then `id` end) As Tuesday,
...

FROM `orders` WHERE 1

GROUP BY HOUR(`order_date`)

我得到以下输出,这正是我应该得到的:

Hour    Suday   Monday  Tuesday Wednesday
10        8      23       43       5
11       13      41       61      12

我的问题是如何基于它在总数上的相对值对单元格进行颜色编码,以便例如具有较高值的​​单元格变为红色,而中等值变为橙色。

我正在考虑定义百分位数范围并为每个单元格赋予一个带有百分比值的属性,然后使用if(value_range == somethin%)然后使用颜色......

有没有人有更好的想法来实现这个目标?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以编写一个函数来检查数字的值,并根据其值应用不同的CSS类。

示例PHP函数:

function checknumber() {
  if ( range >= '[number]' && <= '[number]' ) {
    $colorcode = 'red';
  }
  return $colorcode;
}

使用功能:

<td class="<?php echo checknumber() ?>">[number]</td>

定义样式规则:

.red {
  color:#F00;
}

只需重复您需要的颜色和范围。