SQL / PHP计算投票的百分比

时间:2012-10-11 15:22:48

标签: php sql calc

在我运行的网站上,我让用户评价我们的网站。 我将数据保存在数据库中。有8个不同的答案。我怎样才能得到每个值的投票百分比。

我的表看起来像这样

ID -----表决
1点------- P1

2 ------- P1

3 ------- P2

4 ------- P3

5 ------- P4

6 ------- P3

...

3 个答案:

答案 0 :(得分:3)

您可以使用:

select vote, 
       count(*) / (select count(*) from your_table) * 100 as percentage
from your_table
group by vote

答案 1 :(得分:0)

这是IMO的两倍,一个获取数据,另一个显示它但是这里:

SELECT vote, count(vote)
FROM votes
GROUP BY vote WITH ROLLUP

这将为您提供所有投票计数(不包括没有投票的答案,您必须推断它们或更改您的模型),并且具有NULL投票的最后一行将是您的所有投票总数。< / p>

所以你把它们放在内存中就像你应该做的那样,把它传递给你的显示方法(视图,模板,你使用的观察者),这个会:

echo $voteCount / $totalVotes * 100;

干杯

答案 2 :(得分:0)

所以你有一个表polls,其中一个voteid字段说明为这一次投票发出了什么偏好。

我认为,您最好的选择就是运行

SELECT voteid, count(voteid) AS votes FROM polls GROUP BY voteid;

然后在PHP中恢复数据:

$votes = array();
$total = 0;
while($vote = mysql_fetch_array($exec)) // or PDO, or ...
{
    list($voteid, $num) = $vote;
    $votes[$voteid] = $num;
    $total += $num;
}
// Convert absolute number to percentages
$percents = array();
foreach($votes as $vote => $count)
    $percents[$vote] = number_format(($count*100.0)/$total, 2);
相关问题