0

いくつかのテストでユーザーの平均スコアに依存する評価画像を読み込みたいです。たとえば、ユーザーのスコアが 5 (5 を含まない) から 6 (6 を含む) の間の場合、3 つ星の評価である画像 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;?>

アイデアはありますか?

4

3 に答える 3

1

$row['AVG(answer)']0 から 9 までしか指定できない場合は、

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

SELECT AVG(answer) as avg_answer ...また、クエリにエラーがある可能性があります(エコーするようなことをしているはずです$row['avg_answer']

于 2013-11-06T23:48:34.263 に答える
1

他の人からの回答は良いです。しかし、ここにあなたのコードの本当の問題があります:

あなたが書いた:

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

しかし、正しいのは次のとおりです。

if ($row['AVG(answer)'] > 3 && $row['AVG(answer)'] <= 4)
于 2013-11-06T23:58:57.893 に答える
0

ceil ステートメントを使用するだけで、これをより簡単に行うことができます。

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

これは、あなたが持っているすべてのデータに対して機能します。これらの複数の if ステートメントはすべて必要ありません。

四捨五入だけが必要なので、これはすべてのインスタンスでうまく機能します。

于 2013-11-06T23:50:47.633 に答える