我有一个名为company_reviews
的表格,其中我存储了用户提交的评论和评级编号(1-5)。我需要计算很多评论之间的平均值,并输出总数只有一位小数(例如2.5,3.5,2.1,5.1等)。在其他方面,我需要计算与{和1}相关的每一个company_reviews_rating
的总数。其中company_reviews_company_id
为id = 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模型中做到这一点?
答案 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