这可能是我忽略的愚蠢,但有人可以告诉我为什么当我在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>';
}
?>
答案 0 :(得分:1)
试试这个?您需要将函数的返回连接到字符串。
<?php
echo '
<tr class="data_center">
<td bgcolor="' . get_color($row['rating']) . '">' . $row['pos'] . '</td>
</tr>';
}
?>
我假设$row['rating']
返回的数字小于或等于100。
答案 1 :(得分:0)
使用while()
循环而不是do{}while()
循环。在第一次运行do{}
语句期间,尚未声明变量$row_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>