2015-06-13 83 views
0

我正在輸出頁這樣的(示於下面的屏幕截圖refer below image顯示前10個結果中codeignitor和顯示第一,第二和第三頂值

我想金圖像是顯示以得分最高和銀到第二禮帽和青銅他人

我使用這樣

<div class="row"> 
<div class="col-lg-12"> 
    <div class="panel panel-default"> 
     <div class="panel-heading"> 
      <h3 class="panel-title"><i class="fa fa-tasks"></i> ScoreBoard</h3> 
     </div> 
     <div class="panel-body"> 
      <div class="col-sm-12"> 
       <table cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered"> 

        <tbody> 
         <?php 
          $total_exams1 = $this->db->select('title_id') 
            ->from('exam_title') 
            ->count_all_results(); 

           $b1 = $this->db->select('*, (sum(result.result_percent))/'.$total_exams1.' as percent') 
                ->group_by('users.user_id')          
                ->from('result') 
                ->order_by("percent", "desc") 
                ->join('users', 'users.user_id = result.user_id', 'left') 
                ->join('states', 'users.state = states.state_id', 'left') 
                ->join('user_zone', 'users.user_zone = user_zone.user_zone_id', 'left') 
                ->limit("10") 
                ->get() 
               ->result(); 
          $j = 1; 
          foreach($b1 as $z) {            
         ?> 
          <tr class="<?= ($i & 1) ? 'even' : 'odd'; ?>">          
           <td style="width:5%;"><?php echo $j; ?></td> 
            <?php if($z->image == "") { ?> 
           <td class="hidden-x" style="width:35%;">  
            <img class="userImgTop10n" src="<?php echo base_url('user-avatar/avatar-placeholder.jpg') ?>" alt="Profile Picture" /> 
            <div class="image_righ"> 
             <b><?php echo $z->user_name; ?></b><br> 
             <?php echo $z->state_name; ?><br> 
             <?php echo $z->user_zone_name; ?> 
            </div> 
           </td>         
            <?php } else { ?> 
           <td class="hidden-x" > 
            <img class="userImgTop10n" src="<?php echo base_url("user-avatar/".$z->image); ?>" alt="Profile Picture" /> 
            <div class="image_righ"> 
             <b><?php echo $z->user_name; ?></b><br> 
             <?php echo $z->state_name; ?><br> 
             <?php echo $z->user_zone_name; ?> 
            </div> 
           </td>         
            <?php } ?>   
           <?php     
            $exams_attended1 = $this->db->select('title_id')  
             ->where('user_id', $z->user_id) 
             ->from('result') 
             ->group_by('user_id') 
             ->count_all_results(); 
           ?> 
           <td class="hidden-xxs"><b><?php echo $exams_attended1; ?></b><br>Exams Attended</td> 
           <td class="hidden-xxs"><b><?php echo $total_exams1; ?></b><br>Total Exams</td> 
           <td class="hidden-x"> 
            <b><?php echo round($z->percent, 2); ?> %</b><br>Avg Result 
              <div class="badge_righ"> 
              <?php if($j == 1) { ?>            
              <span><img class="userBadge" src="<?php echo base_url('Badge_Gold.png') ?>" alt="Badge Gold" /></span>            
              <?php } 
              if($j == 2) { ?>           
              <span><img class="userBadge" src="<?php echo base_url('Badge_Silver.png') ?>" alt="Badge Gold" /></span>            
              <?php } if($j > 2) { ?>            
              <span><img class="userBadge" src="<?php echo base_url('Badge_Bronze.png') ?>" alt="Badge Gold" /></span>          
              <?php } ?> 
              </div> 
           </td>         
          </tr> 
          <?php 
          $j++; 
           } 
          ?> 
        </tbody> 
       </table> 
      </div> 
     </div> 
    </div> 
</div> 

在上面的截圖第一3行

代碼應該GOL d圖像(由於相同的標記)。請有人幫我做到這一點。

+0

請在您的查詢中根據您的獎牌 –

+0

嘗試另一種順序。爲此,您必須決定您希望顯示在排行榜列表中的百分比範圍。你所做的是corrcect而不是與1或2共同使用平均百分比值。並顯示列表基於平均百分比 –

+0

我正在使用第一排金牌和第二排銀牌和其他人的銅牌。我想要基於標記顯示獎牌,請告訴我如何做到這一點 – Zub

回答

0

您可以創建一個包含唯一反向排序平均分數的臨時數組。然後,在給予獎牌時,不要檢查地點(第1,2,3,...),檢查分數是否與該臨時數組中的第1,第2或第3分相匹配。

爲您發佈的截圖中,陣列看起來像:

$scores = [92.5, 90, 87.5]; 

和金牌將是所有與$scores[0]比分,銀色的有$scores[1]得分和青銅器是$scores[2](除非你想大家都別人得到青銅)。

+0

無關緊要,根據查詢結果在每個查詢後生成臨時數組。 – Shomz

+0

如果$ scores [0]和$ scores [1]是相同的,那麼我需要爲這兩個分數顯示黃金。我該怎麼辦? – Zub

+0

請閱讀我的答案...他們**不能**是相同的,因爲該數組需要**獨特**和**反向排序** ... http://php.net/manual/en/ function.array-unique.php和http://php.net/manual/en/function.rsort.php – Shomz

相關問題