2013-04-01 52 views
1

所以我想改变表格单元格的背景颜色以获得不同的MySQL数据。我的情况是,当用户输入他们的体重和身高时,它会计算他们的体重指数(BMI)以及输出BMI类别。事情是这样的:MySQL数据的不同表格单元格颜色

BMItable

现在我该怎样更改BMI类别中,“减持”,将白色表格单元格颜色,“正常体重”为黄色,“超重”是橙色的?我试过以下,但不起作用。

这是我在我的PHP代码:

echo "<table border=\"1\"><tr><th>Name</th> //etc. 
if (mysqli_num_rows($result) == 0) 
echo "<tr><td colspan='2'>No records found.</td></tr>"; 

else { 
while ($row = mysqli_fetch_assoc($result)) 
{ 
echo "<tr><td>" . $row['Name'] . "</td>"; 
//some more codes for weight, height, BMI 
echo "<td class='<?php $tdClass; ?>'>" . $row['Health_Measure'] . "</td>"; 
} 
} 
echo "</table>"; 

if ($row['Health_Measure'] == "Underweight") 
     $tdClass = 'underweight'; 

else if ($row['Health_Measure'] == "Normal Weight") 
    $tdClass = 'normalweight'; 

else if ($row['Health_Measure'] == "Overweight") 
    $tdClass = 'overweight'; 

CSS:

.underweight { 
    background-color:white; 
} 
.normalweight { 
    background-color:yellow; 
} 
.overweight { 
    background-color:orange; 
} 
+0

它会生成正确的HTML吗?一点都没有?有什么,但不是它应该是什么? – andrewsi

+0

该类不适用于单元格? – 2013-04-01 19:42:27

+0

没有错误和表格输出就像它在图片中一样。它似乎不是应用tdClass –

回答

0

你只需要移动你的代码,以确定CSS类为TD在循环内,你输出表格行。

3

您的代码分配$ tdClass变量是在使用$ tdClass变量的循环之后,所以td标签将没有正确的类。将其更改为...

echo "<table border=\"1\"><tr><th>Name</th> //etc. 
if (mysqli_num_rows($result) == 0) 
echo "<tr><td colspan='2'>No records found.</td></tr>"; 

else { 
while ($row = mysqli_fetch_assoc($result)) 
{ 
    if ($row['Health_Measure'] == "Underweight") 
     $tdClass = 'underweight'; 

else if ($row['Health_Measure'] == "Normal Weight") 
    $tdClass = 'normalweight'; 

else if ($row['Health_Measure'] == "Overweight") 
    $tdClass = 'overweight'; 

echo "<tr><td>" . $row['Name'] . "</td>"; 
//some more codes for weight, height, BMI 
echo "<td class='<?php $tdClass; ?>'>" . $row['Health_Measure'] . "</td></tr>"; 
} 
} 
echo "</table>"; 
+0

它仍然不显示正确的背景颜色 –

+0

我看到你错过了我已经添加到我的答案的结束tr标记。这可能不是问题。我会静态地将类名应用于td标签,并查看它是否有效......以帮助缩小范围。 – SomeSillyName