我有一张表来管理视频列表的投票,我需要获得单个条目的投票数。
这是我的表:
id | user_id | entry_id | vote
这是一个条目示例:
1 | 1 | 729 | 3
2 | 2 | 729 | 4
3 | 3 | 729 | 4
4 | 4 | 729 | 1
5 | 5 | 729 | 4
我需要知道有多少用户投票1,3和4以及投票该用户的总用户数。
在这种情况下,我应该得到:
Users that voted 1: 1
Users that voted 3: 1
Users that voted 4: 3
Total user: 5
在这种情况下,我可以使用php创建百分比。
这就是我对活动记录所做的事情:
$this->db->select('COUNT(*) as tot_users, vote', FALSE);
$this->db->from('voti_video');
$this->db->where('entry_id', $id_entry);
$this->db->group_by('vote');
通过这段代码,我得到了用户投票的确切内容和投票数量 如何在不进行新查询的情况下获取用户总数? 可能吗?
答案 0 :(得分:1)
我使用了这段代码。
$this->db->select( 'NAME' );
$this->db->select_sum( 'COUNTER' );
$this->db->from( 'TABLE' );
$this->db->order_by( 'NAME', 'ASC');
$this->db->group_by( 'NAME' );
$this->db->limit( 5 );
$result = $this->db->get();
return ( $result->num_rows() > 0 ? $result->result_array() : false );
答案 1 :(得分:0)
您需要在选择列表中有一个子查询,为您提供总行数
$this->db->select('count(*)');
$this->db->from('voti_video');
// Render the subquery to a string
$subQuery = $this->db->compileselect();
// Reset active record
$this->db->resetselect();
// Generate the main query as posted by you and include the subquery
$this->db->select('COUNT(*) as tot_users, vote', FALSE);
$this->db->select("($subQuery) as TotalVotes");
$this->db->from('voti_video');
$this->db->where('entry_id', $id_entry);
$this->db->group_by('vote');
答案 2 :(得分:0)