Php 根据用户的分数对其进行评级,如果分数在某个间隔之间,则加载某个图像

Php 根据用户的分数对其进行评级,如果分数在某个间隔之间,则加载某个图像,php,mysql,Php,Mysql,我想加载一个评级图像,它取决于用户在一些测试中的平均分数。 例如,如果用户得分在5分(不包括5分)到6分(包括6分)之间,他应该得到image 6.png,这是一个三星级 到目前为止,我试过这个,但它不起作用,似乎有一个错误的地方 Rating: <? if ($row['AVG(answer)'] < 1): ?><img src='images/rating/0.png' hspace='3' style='vertical-align:middle;'>

我想加载一个评级图像,它取决于用户在一些测试中的平均分数。 例如,如果用户得分在5分(不包括5分)到6分(包括6分)之间,他应该得到image 6.png,这是一个三星级

到目前为止,我试过这个,但它不起作用,似乎有一个错误的地方

Rating: 
<? if ($row['AVG(answer)'] < 1): ?><img src='images/rating/0.png' hspace='3'   style='vertical-align:middle;'><? endif;?> 
<? if ($row['AVG(answer)'] == 1): ?><img src='images/rating/1.png' hspace='3' style='vertical-align:middle;'><? endif;?>
<? if ($row['AVG(answer)'] > 1 && <= 2): ?><img src='images/rating/2.png' hspace='3' style='vertical-align:middle;'><? endif;?>
<? if ($row['AVG(answer)'] > 2 && <= 3): ?><img src='images/rating/3.png' hspace='3' style='vertical-align:middle;'><? endif;?>
<? if ($row['AVG(answer)'] > 3 && <= 4): ?><img src='images/rating/4.png' hspace='3' style='vertical-align:middle;'><? endif;?>
<? if ($row['AVG(answer)'] > 4 && <= 5): ?><img src='images/rating/5.png' hspace='3' style='vertical-align:middle;'><? endif;?>
<? if ($row['AVG(answer)'] > 5 && <= 6): ?><img src='images/rating/6.png' hspace='3' style='vertical-align:middle;'><? endif;?>
<? if ($row['AVG(answer)'] > 6 && <= 7): ?><img src='images/rating/7.png' hspace='3' style='vertical-align:middle;'><? endif;?>
<? if ($row['AVG(answer)'] > 7 && <= 8): ?><img src='images/rating/8.png' hspace='3' style='vertical-align:middle;'><? endif;?>
<? if ($row['AVG(answer)'] > 8 && <= 9): ?><img src='images/rating/9.png' hspace='3' style='vertical-align:middle;'><? endif;?>
<? if ($row['AVG(answer)'] > 9 && <= 10): ?><img src='images/rating/10.png' hspace='3' style='vertical-align:middle;'><? endif;?>
评级:
任何人有什么想法吗?

如果
$row['AVG(answer)]
只能是0到9,那么为什么不这样做呢

<img src='images/rating/<?php echo ceil($row['AVG(answer)']); ?>.png' hspace='3' style='vertical-align:middle;'>
.png'hspace='3'style='vertical-align:middle;'>

此外,您的查询中可能存在错误(应该执行类似于
选择AVG(answer)作为AVG_answer…
的操作,然后回显
$row['AVG_answer']

您可以简单地使用ceil语句来简化此操作:

<?php
    echo "<img src='images/rating/".ceil($row['AVG(answer)']).".png' hspace='3'   style='vertical-align:middle;'>";
?>

这将适用于您拥有的所有数据。不需要所有这些多if语句


您只需要将内容汇总,因此这对所有实例都适用。

其他人的答案对您来说很好。但您的代码的真正问题是:

你写道:

if ($row['AVG(answer)'] > 3 && <= 4)

如果($row['AVG(answer)]>3&&3&&$row['AVG(answer)')那么,AVG答案可能是4673,我们没有4,67.png。我们只有0,1,2,3,4,5,6,7,8,9,10.png。如果AVG答案超过10/,你想怎么办
if ($row['AVG(answer)'] > 3 && $row['AVG(answer)'] <= 4)