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


yii: count value array depend on index group number

我有一个来自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  |
    }
}

谢谢。

我喜欢查询生成器。这里有一个解决方案。

$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);
select k1+k2+k3, s1+s2+s3, e1+e2+e3 from t

这不是一个问题,而是关于MySql

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

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