Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL/PHP计算投票百分比_Php_Sql_Calc - Fatal编程技术网

SQL/PHP计算投票百分比

SQL/PHP计算投票百分比,php,sql,calc,Php,Sql,Calc,在我运行的网站上,我让用户对我们的网站进行评分。 我需要将数据保存在数据库中。有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_tab

在我运行的网站上,我让用户对我们的网站进行评分。 我需要将数据保存在数据库中。有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
您可以使用以下选项:

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
这将为您提供所有投票计数(不包括没有投票的答案,您必须推断答案或更改模型),最后一行有空投票的将是您一次的总投票数

因此,您应该像往常一样将它们放在内存中,并将其传递给您的显示方法(视图、模板、您使用的内容),此方法将:

echo $voteCount / $totalVotes * 100;

干杯

在我看来,这有两种方式,一种是获取数据,另一种是显示数据,但下面是:

SELECT vote, count(vote)
FROM votes
GROUP BY vote WITH ROLLUP
这将为您提供所有投票计数(不包括没有投票的答案,您必须推断答案或更改模型),最后一行有空投票的将是您一次的总投票数

因此,您应该像往常一样将它们放在内存中,并将其传递给您的显示方法(视图、模板、您使用的内容),此方法将:

echo $voteCount / $totalVotes * 100;

干杯

因此您有一个表民意测验,其中一个
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);

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

您使用的是什么数据库管理系统?MySql?SQL小姐?Oracle?你能提供更清晰的数据吗?p1是一个功能,有多少选票?功能存储在哪里?用户ID?投票计数?…不知道更多细节:(100/总投票计数*投票类型)您使用的是什么DBMS?MySql?SQL小姐?Oracle?你能提供更清晰的数据吗?p1是一个功能,有多少选票?功能存储在哪里?用户ID?投票计数?…不知道更多细节:(100/总投票计数*投票类型)在这种情况下,您真的应该解释您的数据结构。不清楚。在这种情况下,您真的应该解释您的数据结构。现在还不清楚。