2016-04-16 4 views
0

У меня есть запрос, который работает нормально с результатами, как бы я хотел быть в состоянии вычислить сумму голосов и получить процент. Думаю, мне нужно получить общее количество голосов, прежде чем я смогу рассчитать процент. Следующее является частью моего кода.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

У вас есть несколько вариантов.

Во-первых, вы можете запустить запрос, чтобы получить общее количество голосов, поэтому вы можете разделить голоса кандидата на него, чтобы получить процент при обработке результатов запроса.

Или вы можете сначала обработать результаты запроса в массиве, а также суммировать общее количество голосов, а затем обработать массив. Эта опция требует немного больше кода, но должна быть быстрее, так как вам не нужно дважды запрашивать базу данных.

$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; 
?> 
+0

Awesome thank yk11 You rock. – CyberFla

Смежные вопросы