使用Codeigniter计算表中的平均评级

时间:2016-02-18 14:50:19

标签: php mysql codeigniter

我有一个名为company_reviews的表格,其中我存储了用户提交的评论和评级编号(1-5)。我需要计算很多评论之间的平均值,并输出总数只有一位小数(例如2.5,3.5,2.1,5.1等)。在其他方面,我需要计算与{和1}相关的每一个company_reviews_rating的总数。其中company_reviews_company_idid = x

表格结构

+--------------------+----------------------------+------------------------+
| company_reviews_id | company_reviews_company_id | company_reviews_rating |
+--------------------+----------------------------+------------------------+
|                  1 |                          1 |                      1 |
|                  2 |                          1 |                      5 |
|                  3 |                          1 |                      4 |
|                  4 |                          1 |                      4 |
|                  5 |                          1 |                      3 |
|                  6 |                          1 |                      2 |
+--------------------+----------------------------+------------------------+

这是我到目前为止所提出的,但我被困在这里

public function count_total_rating($id = NULL) {
    $this->db->select('*');
    $this->db->where('company_reviews_company_id', $id);
    $this->db->from('company_reviews');
    $query = $this->db->get();
}

如何在Codeigniter模型中做到这一点?

2 个答案:

答案 0 :(得分:0)

public function count_total_rating($id = NULL) {
    $this->db->select('AVG(company_reviews_rating) as average');
    $this->db->where('company_reviews_company_id', $id);
    $this->db->from('company_reviews');
    $query = $this->db->get();
}

希望有所帮助

答案 1 :(得分:0)

 public function getAveRating(company_reviews_company_id){ 
        $where=array(
             "company_reviews_company_id"=>company_reviews_company_id
             );
        $this->db->where($where);
        $this->db->select_avg('company_reviews_rating');
        $query = $this->db->get('company_reviews')->first_row('array');
        return round($query['company_reviews_rating'], 2);
}

我希望这会有所帮助:D