【PHP】星でレーティングを表示する。テーブルの中の繰り返しとか - Webサービス開発忘備録【No. 12】

レーティングの表示変更

レーティングの表示の仕方を変更した。

5を最高とした5段階のレーティングシステムなんだけど、以前はただ単に数字で表していたのを、星を使って表示するようにしてみた。

テーブルの、カラムのうちの1つ。レーティングの部分だけ抜粋するとソースはこんな感じに。

$row["rate"]は、データベースから抽出したレーティングのデータが入ってる。

search.php

echo"<td>";
$r=$row["rate"];
for ($j=0; $j<$r; $j++) {
	echo"&#9733";
}
for (; $j<5; $j++) {
	echo"&#9734";
}	
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"&#9733";
	}else{
		echo"&#9734";
	}
}
echo"</td>";


うーん...どっちもどっちだなぁ(笑)