2012-04-12 57 views
-2

所以,我的問題是非常困難的,我有一個單一的變量,每4說,我需要翻譯它的某種評級,非常簡單(它從1到5)沒有半顆星或任何東西。評分系統|顯示來自一個變量的評級

我需要顯示一個數字從一到五的評分,所以如果我有1我會有一顆星,如果我有5我會有五顆星。我可以做一個for循環並顯示圖像,但我也需要顯示空的(未評級)明星。我不需要任何功能,所以你不能實際評分,只顯示評分。

因此,因爲任何人都在問我嘗試了什麼,我沒有嘗試過任何東西,因爲我不知道從哪裏開始。

我能做到這一點顯示了許多基於變量我有星(這是一個數字,從1 - > 5):

<?php 

$ratings = 3; 

for($i = 1; $i <= $ratings; $i++) 
echo '<img src="some_image.png" />'; 

?> 

這將是它,但我應該做的沒有評分的開始,我如何顯示剩下的空星到五點?

+0

你的意思是你需要將變量的值四捨五入到最接近的整數? – ppp 2012-04-12 20:47:15

+2

是的,你可以問一個更具體的問題。你有什麼試過的?你能告訴我們你的一些代碼嗎? – 2012-04-12 20:48:14

+0

我不需要回合。而且我還沒有嘗試過任何事情,因爲我只能找到一個可以用MySQL和PHP評分的評分系統。但我只需要顯示評分,而不是評分,而且我不需要MySQL,因爲我只有一個介於1和5之間的變量,它告訴我該項目評分的星星數量。 – Roland 2012-04-12 20:50:56

回答

3

你可以做一個嵌套的for循環,像這樣:

$tranStars; 

for($i=0;$i<5;$i++){ 
    if($i==0){ 
    for($j=0;$j<$rating;$j++){ 
     echo "<img src='yourFullStars.png'/>"; 
     $tranStars=$j; 
    } 
    $i=$tranStars; 
    } 
    echo "<img src='yourEmptyStars.png'/>"; 
} 

,或者你可以爲循環做兩分開:

for($i=0;$i<$rating;$i++){ 
    echo "<img src='yourFullStars.png'/>"; 
} 
for($i=0;$i<5-$rating;$i++){ 
    echo "<img src='yourEmptyStars.png'/>"; 
} 

...或任意數量的事情,真的。

+0

你好,感謝它也hepl我。但是如果我有$ rating = 3.5呢? – 2016-03-14 12:44:44

2

您已經顯示了3顆滿滿的星星,所以您只需顯示剩下的空缺。如果您有:

$ratings = 3;        // 3 filled stars 
for ($i = 1; $i <= $ratings; $i++) {  // go through each star 
    echo '<img src="filled.png" />';  // show it filled 
} 

那麼你就需要找出如果您有任何更多左:

$starsLeft = 5 - $ratings;     // 2 stars left 

,如果是這樣,顯示其餘爲空星:

if ($starsLeft > 0) {      // if there are any more stars left 
    for ($i = 1; $i <= $starsLeft; $i++) { // go through each remaining star 
     echo '<img src="empty.png" />';  // show it empty 
    } 
} 
+0

+ 1 |我已經使用了@Thomas Wright的方法,但是這也適用。我想我沒有問自己如何顯示其餘的星星,我想到如何用表格和實際的評分系統來做到這一點。 – Roland 2012-04-12 21:32:15