我有一个运行良好的查询结果,我希望能够计算投票总和并获得百分比。我想在计算百分比之前我必须得到总票数。以下是我的代码的一部分。
<?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;
感谢您的时间,我希望您有一个答案。此致
答案 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;
?>