簡體   English   中英

在代碼點火器中顯示前10個結果,並顯示第1,第2和第3個最高值

[英]Display top 10 results in codeigniter and display 1st, 2nd and 3rd top values

我正在得到這樣的輸出頁面(如下面的屏幕截圖所示) 參考下圖

我希望向得分最高的人顯示金色圖像,向第二名的頂部顯示銀色圖像,向其他人顯示古銅色

我正在使用這樣的代碼

<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>

在上面的屏幕截圖中,前三行應為金色圖像(由於相同的標記)。

您可以創建一個臨時數組,其中包含唯一的反向排序的平均分數。 然后,在頒發獎牌時,不要檢查位置(第一,第二,第三...),而是檢查分數是否與該臨時數組中的第一,第二或第三分數匹配。

對於您發布的屏幕截圖,數組如下所示:

$scores = [92.5, 90, 87.5];

金牌將是分數為$scores[0]所有分數,銀牌為$scores[1] ,銅牌為$scores[2] (除非您希望其他所有人都獲得銅牌)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM