Select CodeIgniter 中的 AVG

Select AVG in CodeIgniter

现在我有 table 和我所有的 MySQL 结果,我想在我生成的 table 的最后一行显示我的数据库中 Cena、Waga 和 Ilosc 的平均值。

型号:

public function pokaz_towary($order = 'Nazwa')
    {
        return $this->db->select('ID, Nazwa, Cena, Waga, Ilosc')->
                        order_by($order)->
                        get('towary')->
                        result();
    }

控制器:

$data['query_towary'] = $this->towary_model->pokaz_towary($this->input->get('order'));

查看:

if (isset($query_towary))
{
    // Nagłówki
    $this->table->set_heading(array(anchor('?order=id', 'ID'), anchor('?order=nazwa', 'Nazwa'), anchor('?order=cena', 'Cena (PLN)'), anchor('?order=waga', 'Waga (KG)'), anchor('?order=ilosc', 'Ilość'), 'Akcja'));

    foreach($query_towary as $row)
    {
        $akcje = anchor('edytuj?id='.$row->ID ,'Edytuj ');
        $akcje .= anchor('usun?id='.$row->ID , 'Usuń');

        $this->table->add_row(
            $row->ID,
            $row->Nazwa,
            $row->Cena,
            $row->Waga,
            $row->Ilosc,
            $akcje
        );
    }

    echo $this->table->generate();
} ?>

您可以在 select 语句中使用 CI $this->db->select_avg() 或 mysql AVG()。

$this->db->select('AVG(Nazwa) avg_Nazwa,AVG(Cena) avg_Cena,AVG(Waga) avg_Waga,AVG(Ilosc) avg_Ilosc');
$result=$this->db->get('towary')->row();

现在你会得到这样的平均值

$result->avg_Nazwa;//average of Nazwa
$result->avg_Cena;//average of Cena
$result->avg_Waga;//average of Waga
$result->avg_Ilosc;//average of Ilosc

希望你能转化这个想法来解决你的问题。