使用Codeigniter Active Record计算行总计

时间:2011-10-07 15:30:14

标签: php mysql database codeigniter codeigniter-2

我在数据库中存储数量的值(int)。我需要通过将所有行总数加在一起来计算总数量。 $ this-> db-> count_all_results()的问题在于它返回总行但不计算存储的所有值。任何帮助将不胜感激。

function currentDealTotalQuantity($id)
{

    $this->db->select('quantity');

    $this->db->from('table');

    $this->db->where('id', $id);

    $total_sold = $this->db->count_all_results();

    if ($total_sold > 0)
    {
        return $total_sold;
    }

    return NULL;

}

3 个答案:

答案 0 :(得分:3)

我相信你想要这个人:$this->db->select_sum();

您用它替换您的select语句,以便$this->db->select_sum('quantity');生成查询字符串SELECT SUM(quantity) as quantity

找到文档here

答案 1 :(得分:3)

function currentDealTotalQuantity($id)
{

    $this->db->select_sum('quantity');

    $this->db->from('table');

    $this->db->where('id', $id);

    $query = $this->db->get();

    $total_sold = $query->row()->quantity;

    if ($total_sold > 0)
    {
        return $total_sold;
    }

    return NULL;

}

答案 2 :(得分:2)

function currentDealTotalQuantity($id)
{
    $qry = $this->db->select_sum('quantity')
    ->from('table')
    ->where('id', $id)
    ->get();

    if ($qry->num_rows() === 0)
    {
      return FALSE;
    }

    return $qry->row('quantity');
}