簡體   English   中英

Yii:在最高平均評分的基礎上獲取數據

[英]Yii: Getting data on the basis of highest average rating

我是yiibie,我想從我的“ NgoRateReviewNgo”表中獲得前5名的ngo。 排名前5位的Ngo的條件是,它首先應該找到該Ngo的平均評分,然后才顯示平均評分最高的那5個Ngo。 這是我的視圖文件的代碼,其中包含SQL查詢

  <div class="main">
    <div class="banner">
<img src="<?php echo Yii::app()->request->baseurl;?>/img/stat1.jpg" style="width: 1170px">
</div><!--banner ending here--><br>
    <div class="container" style="background-color:#7AC5CD">
        <div class="row">
            <div class="col-md-6">
        <h3 style='text-align:center; text-decoration: underline;font-family: sans-serif; color: black'>Top 5 Ngo's month wise</h3>
        <br>
    <?php
    for($month = 1 ; $month <=12 ; $month++) 
    {
        '<br>' ;
        $dateObj   = DateTime::createFromFormat('!m', $month);
        $monthName = $dateObj->format('F'); 
        echo "<h3 style='text-align:center;color:black;'> " . $monthName . "</h3>"; 

        $user=UserRateReviewNgo::model()->findAll(array(
        'condition' => 'YEAR(date_created)=:year and MONTH(date_created)=:month',
        'params' => array(':year'=>2016, ':month'=>$month),
        'select'=>'max(rate),ngo_id',
        'group' => 'ngo_id',
    'order'=>'rate DESC',
    'limit' =>  5
     ));  
        $val = 100;
        foreach($user as $show) {

            $model = Ngo::model()->findByAttributes(array('id'=>$show->ngo_id,));
            if (isset($model)) {
                echo "<div><h4><a href='".Yii::app()->request->baseUrl."/ngo/ngopage?id=$model->id'><p style='color:black;font-family:Lucida Sans Unicode;'>" . $model->ngo_name ."</p></a></h4></div>


                    <div class='progress'>
                    <div class='progress-bar  progress-bar-danger progress-bar-striped active' role='progressbar'
                    aria-valuenow='" . $val ."' aria-valuemin='0' aria-valuemax='100' style='width: ". $val ."%;'>" .  $val .
                    "</div>
                    </div>";
                    $val = $val -21.23;


    }  }}

    ?>
        </div>

             <div class="col-md-5 col-md-offset-1">   
                 <h3 style='text-align:center; text-decoration: underline;font-family: sans-serif; color: black'>Top 5 Ngo's of the year</h3>
<br>   
 <?php // the for the year 
    $val = 100;
        foreach($userYear as $show)
            {
            $model = Ngo::model()->findByAttributes(array('id'=>$show->ngo_id,));
            if (isset($model)) 
                {
               echo "<div><h4><a href='".Yii::app()->request->baseUrl."/ngo/ngopage?id=$model->id'><p style='color:black; font-family:Lucida Sans Unicode;'>" . $model->ngo_name ."</p></a></h4></div>


                    <div class='progress'>
                    <div class='progress-bar progress-bar-success progress-bar-striped active' role='progressbar'
                    aria-valuenow='" . $val ."' aria-valuemin='0' aria-valuemax='100' style='width: ". $val ."%;'>" .  $val .
                    "</div>
                    </div>";
                    $val = $val -17.96;

            } 

        }
    ?>
</div>
            </div>
        </div><!--main ending here-->

</div><!--Container ending here--> 

請幫我解決一下這個。

這應該是查詢

 $user=UserRateReviewNgo::model()->findAll(array(
    'condition' => 'YEAR(date_created)=:year and MONTH(date_created)=:month',
    'params' => array(':year'=>2016, ':month'=>$month),
    'select'=>'avg(rate),ngo_id',
    'group' => 'ngo_id',
'order'=>'rate DESC',
'limit' =>  5
 )); 

暫無
暫無

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

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