Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
条件单元格颜色函数在php标记内不起作用_Php - Fatal编程技术网

条件单元格颜色函数在php标记内不起作用

条件单元格颜色函数在php标记内不起作用,php,Php,这可能是我忽略的一些愚蠢的事情,但是有人能告诉我为什么当我在php标记中时下面的函数不起作用吗。 该函数根据mysql值设置表格单元格的背景颜色 功能 <?php /* FUNCTION DEFINES GOLD SILVER BRONZE BLACK */ function get_color($cellcolor) { $color = "#ffffff"; if (($cellcolor <= 100) && ($cellcolor > 8

这可能是我忽略的一些愚蠢的事情,但是有人能告诉我为什么当我在php标记中时下面的函数不起作用吗。 该函数根据mysql值设置表格单元格的背景颜色

功能

<?php
/* FUNCTION DEFINES GOLD SILVER BRONZE BLACK */
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 > 55)) {
        $color = "#965A38";
    } else if ($cellcolor <= 55) {
        $color = "#000000";
    }
    return $color;
}
?>

试试这个?您需要将函数的返回连接到字符串

<?php
echo '
<tr class="data_center">
<td bgcolor="' . get_color($row['rating']) . '">' . $row['pos'] . '</td>
</tr>';
}
?>

我假设
$row['rating']
返回的数字小于或等于100。

使用
while()
循环,而不是
do{}while()
循环。在第一次运行
do{}
语句期间,变量
$row\u recordset1
尚未声明,因为第一个
while()
条件尚未运行

此外,尝试将
style
与CSS一起使用,而不是
bgcolor
属性

这应该起作用:

<?php while ($row_recordset1 = mysql_fetch_assoc($recordset1)) {
    $color = get_color($row_recordset1['rating']); ?>
    <tr class="data_left">
    <td style="background-color:<?php echo $color; ?>;"><span class="style1 count"></td>
    </tr>
<?php } ?>
</table>


生成的HTML是什么样子的?如果你按如下顺序排列颜色等级,你可以减少大部分条件:完美。反应也这么快。非常感谢你。。。是的,您是正确的,检索到的值介于0和100之间,或者为null。
<?php
echo '
<tr class="data_center">
<td bgcolor="' . get_color($row['rating']) . '">' . $row['pos'] . '</td>
</tr>';
}
?>
<?php while ($row_recordset1 = mysql_fetch_assoc($recordset1)) {
    $color = get_color($row_recordset1['rating']); ?>
    <tr class="data_left">
    <td style="background-color:<?php echo $color; ?>;"><span class="style1 count"></td>
    </tr>
<?php } ?>
</table>