select_sum和num_rows在codeigniter中不能一起工作

时间:2015-05-26 13:36:27

标签: php mysql codeigniter

这是我的查询。我希望得到数量和数量的总和。

 function getCountByType($inventory_type) {

        $this->db->select_sum('quantity','total_quantity');
        if($inventory_type)       
        $this->db->where('inventory_type',$inventory_type);
        $query = $this->db->get($this->tableInventory);
        $resultdata = $query->result(); 
        $result['total_count'] = $query->num_rows();
        $result['total_quantity'] = $resultdata[0]->total_quantity;
        return $result;
    }

它为我提供了正确的数量总和,但num_rows每次都返回1。即使我有10条记录,它也只会提供1条记录,而当我remove select_sum时,它会正常工作。

4 个答案:

答案 0 :(得分:0)

Sum是聚合函数,它最后将您的行分组为单个放置求和查询。

SERIALIZABLE

答案 1 :(得分:0)

select_sum表示它会为您提供所有行的摘要,而不是单个行。

你需要做两个查询,或者计算自己的总和(建议)

答案 2 :(得分:0)

drop_down()SUM()函数。它将获取为组返回的所有行并将其添加。

由于您没有aggregate子句,因此它会将所有行的值相加,即使没有。然后将总数作为单行返回,因此应该只有GROUP BY

您可以使用1 row.获取group_by的总数

row

答案 3 :(得分:0)

我想你想要总数和总数量。 只需用此

替换行$this->db->select_sum('quantity','total_quantity');即可
$this->db->select('SUM(quantity) total_quantity,COUNT(quantity) total_count');

现在你可以通过这种方式获得它们(在$resultdata = $query->result();之后)

$result['total_count'] = $resultdata[0]->total_count;
$result['total_quantity'] = $resultdata[0]->total_quantity;

注意

你可以使用它,因为结果会返回一条记录

$resultdata = $query->row();
$result['total_count']=$resultdata->total_count;
$result['total_count']=$resultdata->total_quantity;