私のデータベース1
には、、、、、、、および_2
2.5
3
3.5
4
4.5
5
これらの数字を星に変換したい。
私は満点の星と半分の星を持っています。
データベースから情報を取得した後、どうすればそれを行うことができますか?
データベースに評価タグがあります。
私のデータベース1
には、、、、、、、および_2
2.5
3
3.5
4
4.5
5
これらの数字を星に変換したい。
私は満点の星と半分の星を持っています。
データベースから情報を取得した後、どうすればそれを行うことができますか?
データベースに評価タグがあります。
<?php
for($x=1;$x<=$starNumber;$x++) {
echo '<img src="path/to/star.png" />';
}
if (strpos($starNumber,'.')) {
echo '<img src="path/to/half/star.png" />';
$x++;
}
while ($x<=5) {
echo '<img src="path/to/blank/star.png" />';
$x++;
}
?>
*PHPを使用していると仮定します
私が過去にこれを行ったとき、私は5つの満たされた星の1つの画像の下に5つの空の星の1つの画像を使用しました。それから私は次のようなことをしました
filled-stars.width = (empty-stars.width * (rating / 5)
このようにして、3.2978などの評価を表示できます。
PHP、HTML、および CSS を使用してそれを行うことができます。
<div class="star-<?=$number?>">
<b></b><b></b><b></b><b></b><b></b>
</div>
次に、CSS でスタイルを設定して、星に応じて背景画像を表示できます。<b>
タグをタグに変換すると、<a>
おそらくよりセマンティックになります。
スプライトの使用を検討してください。可能な評価ごとに星の列を含むグラフィックから始めて、次に、各半星グラフィックの高さに評価の半星の数を掛けて、背景オフセットを計算します。
例えば:
<?php
$offset =
($rating / .5) // number of half-stars in $rating
* 15; // height of each sprite in stars.png
?>
<div style="background-image:url("stars.png");background-position:0 <?php echo $offset; ?>px;"></div>
少しのJavascriptと組み合わせると、フル機能の評価ウィジェットを実装できます。
ここでは、echo '*';
必要に応じて星と半分をecho '+';
追加します'*'
'+'
<img src="star.gif" />
<img src="halfstar.gif" />
// This number of stars:
$number = 2.7;
// Make it integer:
$stars = round( $number * 2, 0, PHP_ROUND_HALF_UP);
// Add full stars:
$i = 1;
while ($i <= $stars - 1) {
echo '*';
$i += 2;
}
// Add half star if needed:
if ( $stars & 1 ) echo '+';