Php 使用hmvc的codeigniter轮询模块

Php 使用hmvc的codeigniter轮询模块,php,codeigniter,hmvc,Php,Codeigniter,Hmvc,我正在尝试使用hmvc在codeigniter中创建一个轮询模块 我正在尝试返回计数,以百分比的形式与投票给候选人id的用户id的数量相对应 我使用的是所谓的perfectcontroller和perfectmodel 在这里,我可以返回每个候选用户都有一个用户id的行数 但是我有七个候选人的id,所以得到百分比有点棘手 但是,让计数与id匹配也是一件棘手的事情,因为它的计数 我不知道这样做是否正确,或者我是否应该换一种方式,任何建议都会有所帮助 谢谢 无论您有7名或77名候选人。选票正在计票。

我正在尝试使用hmvc在codeigniter中创建一个轮询模块 我正在尝试返回计数,以百分比的形式与投票给候选人id的用户id的数量相对应 我使用的是所谓的perfectcontroller和perfectmodel

在这里,我可以返回每个候选用户都有一个用户id的行数 但是我有七个候选人的id,所以得到百分比有点棘手 但是,让计数与id匹配也是一件棘手的事情,因为它的计数
我不知道这样做是否正确,或者我是否应该换一种方式,任何建议都会有所帮助 谢谢


无论您有7名或77名候选人。选票正在计票。所以,如果你在DB只有一票,那就意味着一个候选人100%,其他人0%。我不知道你通过完善控制器和完善模型来考虑什么。但是你的桌子可能是

election_id | voter_id | candidate_id
$this->db->query("SELECT `e`.`candidate_id`, COUNT(1) AS `total`, COUNT(1) / `t`.`cnt` * 100 AS `percentage` FROM `elections` `e` CROSS JOIN (SELECT COUNT(1) AS `cnt` FROM `elections`) `t` GROUP BY `e`.`candidate_id`;");
您的查询如下

election_id | voter_id | candidate_id
$this->db->query("SELECT `e`.`candidate_id`, COUNT(1) AS `total`, COUNT(1) / `t`.`cnt` * 100 AS `percentage` FROM `elections` `e` CROSS JOIN (SELECT COUNT(1) AS `cnt` FROM `elections`) `t` GROUP BY `e`.`candidate_id`;");

我将我的表格设置如下id | user | id | candidate | id perfectcontroller和perfect model只是一个现成的控制器和模型,它具有CI用户指南中的所有功能,非常方便模块制作,非常有用。到目前为止,我成功地获得了它,但从外观上看,它与您所展示的非常接近Me这是你期待的结果吗?1的候选人拥有44.4444%的选票2的候选人拥有55.55555556%的选票这当然是一个开始,我必须想办法让它进入视图,并在我编号后传递相关的候选人id