yii:count值数组取决于索引组号

时间:2014-09-18 03:15:00

标签: php arrays yii sum

我有来自mysql的表,如下所示:

id | name | grade | k1 | k2 | k3 | s1| s2 | s3| e1 | e1 | e3 |
1  |  Aa  |    5  |  1 | 0  | 5  | 3 | 2  | 1 |  0 | 6  | 1  |
2  |  Bb  |    1  |  1 | 3  | 5  | 3 | 5  | 3 |  4 | 6  | 1  |
3  |  Cc  |    2  |  1 | 4  | 2  | 2 | 2  | 4 |  0 | 6  | 1  |
4  |  Dd  |    4  |  1 | 3  | 5  | 3 | 3  | 1 |  0 | 6  | 1  |
5  |  Ee  |    3  |  1 | 5  | 2  | 1 | 0  | 5 |  0 | 6  | 1  |
6  |  Ff  |    2  |  1 | 3  | 1  | 3 | 4  | 2 |  0 | 6  | 1  |
7  |  Gg  |    5  |  1 | 1  | 5  | 5 | 2  | 1 |  0 | 6  | 1  |

使用FOR和FOREACH循环,我能够显示所有行。但在最终视图/表中我想

SUM [k1,k2,k3], SUM[s1,s2,s3] and SUM[e1,e2,e3]

因此它会在每一行中将新的列作为K,S和E放置。

以下是我的代码:

for ($i = 0; $i < Evaluation::model()->count(); $i++) {
    foreach (Yii::app()->db->createCommand()
        ->from('evaluation')
        ->queryAll() as $item) {
         // Row-Column start here
         // id | name | grade | K  | S  | E  |
    }
}

感谢。

2 个答案:

答案 0 :(得分:1)

我喜欢查询构建器。所以这是解决方案之一。

$result = Yii::app()->db->createCommand()->
    select('id, name, grade, (k1+k2+k3) AS K, (s1+s2+s3) AS S, (e1+e2+e3) AS E')->
    from(MyModel::model()->tableName())->
    queryAll();

var_dump($result);

答案 1 :(得分:0)

select k1+k2+k3, s1+s2+s3, e1+e2+e3 from t

并且它不是yii问题,它是关于MySql

如果你想用Yii表达,你可以

Yii:app()->createCommands()
    ->select('k1+k2+k3, s1+s2+s3, e1+e2+e3')
    ->from('t')
    ->queryAll();