【PHP】星でレーティングを表示する。テーブルの中の繰り返しとか - Webサービス開発忘備録【No. 12】
レーティングの表示変更
レーティングの表示の仕方を変更した。
5を最高とした5段階のレーティングシステムなんだけど、以前はただ単に数字で表していたのを、星を使って表示するようにしてみた。
テーブルの、カラムのうちの1つ。レーティングの部分だけ抜粋するとソースはこんな感じに。
$row["rate"]は、データベースから抽出したレーティングのデータが入ってる。
search.php
echo"<td>"; $r=$row["rate"]; for ($j=0; $j<$r; $j++) { echo"★"; } for (; $j<5; $j++) { echo"☆"; } echo"</td>";
知らなかったのだけど「& #9733」で「★」を表示することができる。「& #9734」で「☆」になる。
forを2つ使ってるわけだけど、もっとスマートな方法があれば知りたい。ある気がする。
forの中でif文で分岐するとか…?
ちょっと書いてみよう。
search_revised.php
echo"<td>"; $r=$row["rate"]; for ($j=0; $j>5; $j++) { if ($j<$r) { echo"★"; }else{ echo"☆"; } } echo"</td>";
うーん...どっちもどっちだなぁ(笑)