2017-02-16 11 views
-1

問題があります。 PHPを使用してdb値ごとの評価を表示する必要がありますが、期待通りには来ません。私は以下のコードを説明しています。phpを使用して評価を正しく表示できない

$v['rating']=4; 
<ul> 
    <?php 
     for($i=0;$i<5;$i++){ 
      if($i <= $v['rating']){ 
?> 
      <li><i class="fa fa-star activestar"></i></li> 
<?php }else { ?> 
      <li><i class="fa fa-star"></i></li> 
<?php } }?> 
</ul> 

ここでは、5つのうち4つの星を強調表示する必要があり、1つは強調表示されません。しかし、私はすべての星を強調表示しています。私を助けてください。

答えて

0

あなたのコードは次のようになります。ループの外に

$v['rating'] = 4; 
<ul> 
    <?php for ($i = 1; $i <= 5; $i++): ?> 
     <?php if ($i <= $v['rating']): ?> 
      <li><i class="fa fa-star activestar"></i></li> 
     <?php else: ?> 
      <li><i class="fa fa-star"></i></li> 
     <?php endif; ?> 
    <? endfor; ?> 
</ul> 
0

キープ李

$v['rating']=4; 
    <ul> 
    <li> 
    <?php 
    for($i=1;$i<6;$i++){ 
     if($i <= $v['rating']){ 
     ?> 
     <i class="fa fa-star activestar"></i> 
    <?php }else { ?> 
     <i class="fa fa-star"></i> 
    <?php } }?> 
    </li> 
    </ul> 
0

あなたのforループの条件(0から4まで行く:5よりも小さい$iのために、あります4)。

これを修正する1つの方法は、forループをfor($i=1;$i<=5;$i++)に変更することです。これにより、1から5までループします。

関連する問題