簡體   English   中英

SQL / PHP計算投票百分比

[英]SQL / PHP calculate percent of Votes

在我運行的網站上,我讓用戶對我們的網站進行評分。 我將數據保存在數據庫中。 有8種不同的答案。 我如何獲得每個值的投票百分比。

我的桌子看起來像這樣

id -----投票
1 ------- p1

2 ------- p1

3 ------- p2

4 ------- p3

5 ------- p4

6 ------- p3

...

您可以使用此:

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

IMO有兩種折疊方式,一種是獲取數據,另一種是顯示數據,但是這里是這樣:

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

這將為您提供所有投票計數(不包括沒有投票的答案,您必須推斷出答案或更改模型),最后具有NULL表決權的行將同時成為您的總投票數。

因此,您可以像往常一樣將它們放置在內存中,並將其傳遞給您的顯示方法(視圖,模板,所用的對象),此方法將:

echo $voteCount / $totalVotes * 100;

干杯

因此,您有一個表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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM