【问题标题】:Select AVG in CodeIgniter在 CodeIgniter 中选择 AVG
【发布时间】:2015-08-23 07:46:33
【问题描述】:

现在我有一个包含所有 MySQL 结果的表,我想在生成的表的最后一行显示我的数据库中 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();
} ?>

【问题讨论】:

    标签: php mysql codeigniter codeigniter-3


    【解决方案1】:

    您可以在选择语句中使用 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
    

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

    【讨论】:

    • 现在我有:$this->db->select('ID, Nazwa, Cena, AVG(Cena) avg_cena, Waga, AVG(Waga) avg_waga, Ilosc, AVG(Ilosc) avg_ilosc' )。而且我的数据库中只有一 (1) 个结果(行):(
    • 制作两个函数,一个只取平均值,另一个取记录
    • 我想我可以用一个查询来做到这一点。感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 2020-03-06
    • 2012-12-23
    • 1970-01-01
    • 2011-03-29
    相关资源
    最近更新 更多