1

先月のデータを取得したいのですが、以下のコードを使用していますが、正しく機能していません。

これが私のコードです:

public function getLastMonth($user_id)
{       
    $criteria=new CDbCriteria;

    $criteria->condition = 'leave_from_date >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)';
    $criteria->condition = 'leave_to_date <= DATE_SUB(CURDATE(), INTERVAL 1 DAY)';
    $criteria->condition = "user_id = $user_id";
    $data = Leaves::model()->findAll($criteria);
    $lastMonthR = 0;
    foreach($data as $lastMonth)
     {
         $lastMonthR += $lastMonth->total_leaves_hours;
     }      
    //return lastMonthR CHtml::encode($lastMonthR);
    return $lastMonthR;
}

MYSQL にある次のクエリの結果と同等の結果を取得したい:

SELECT *,sum(total_leaves_hours) FROM tbl_leaves
WHERE leave_from_date >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH) AND 
leave_to_date <= DATE_SUB(CURDATE(), INTERVAL 1 DAY) ;

YII のコード (上記) を実行すると、テーブルのすべてのデータが表示されます。YII を初めて使用する私を助けてください。前もって感謝します。

4

2 に答える 2