0

这可能是我忽略的一些愚蠢的事情,但是有人可以告诉我为什么当我在 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 do { ?>
<tr CLASS="data_left" >
<td bgcolor=<?php echo get_color($row_recordset1['rating']); ?>><span class="style1 count"></td>
</tr>
<?php } while ($row_recordset1 = mysql_fetch_assoc($recordset1));  ?>
</table>

我的问题是这个。

我应该如何从 PHP 标记中调用我的函数。我尝试了以下方法,但所有的单元格都是红色、粉红色或绿色?

而且它们不仅仅是分配了错误的颜色,它们与 $row[ rating] 中包含的值无关。

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

2 回答 2

1

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

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

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

于 2013-07-01T18:57:10.117 回答
0

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

此外,尝试使用styleCSS 而不是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>
于 2013-07-01T19:03:18.820 回答