mysql Sum()和总和的百分比

时间:2016-04-16 14:30:13

标签: php mysql

我有一个运行良好的查询结果,我希望能够计算投票总和并获得百分比。我想在计算百分比之前我必须得到总票数。以下是我的代码的一部分。

    <?php
    $query = "SELECT candidates.CandidateName, candidates.CandidateVotes, candidates.Party, mainrace.MainRaceName, race.RaceName
    FROM candidates
    JOIN race ON race.RaceID = candidates.RaceID
    JOIN mainrace ON mainrace.MainID = candidates.MainID
    WHERE candidates.RaceID = 9";

    $result = mysql_query($query) or die(mysql_error());

    //Loop through db fields. 

    for($i=0; $row = mysql_fetch_array($result); $i++){
    ?>


    <tr>
           <td>Perentage</td>
           <td><?php echo $row['CandidateName']; ?></td>
           <td><?php echo $row['CandidateVotes']; ?></td>

           </tr>
       <?php
            }
       ?>
       <tr>
         <td></td>
         <td>Total Votes:</td>
         <td>Sum totals</td>

       </tr>

此时我希望能够在此其他查询之前运行查询并获取

query = "SELECT sum(candidates.CandidateName) FROM candidates WHERE candidates.RaceID =9";

然后我可以计算$Percentage= $CadidateVotes/100;

enter image description here

感谢您的时间,我希望您有一个答案。此致

1 个答案:

答案 0 :(得分:1)

您有几种选择。

首先,您可以运行查询以获得总投票数,然后您可以将候选人的投票除以它以在处理查询结果时获得百分比。

或者你可以先将查询结果处理成一个数组,同时也加总总票数,然后处理数组。此选项需要更多代码,但应该更快,因为您不需要两次查询数据库。

$candidates=[];
$total_votes=0;
for($i=0; $row = mysql_fetch_array($result); $i++) {
    $candidates[$row['name']]['votes'] = $row['votes'];
    $total_votes += $row['votes'];
}

foreach ($candidates as $name => $votes) {
$percent = $votes / $total_votes;
?>