Beste Php'ers

Ik ben bezig een eigen poll te maken en wil het percentage bereken van 1 bepaade stem.

Maar ik kom er niet uit nu ;p normaal is wiskunde geen probleem maar nu...

Zie het script

<?php

$sqlt = "SELECT * FROM poll_answer";
$queryt = mysql_query($sqlt);
while($antw = mysql_fetch_assoc($queryt)) {
$total_votes++;
}

$sql1 = "SELECT * FROM poll_answer WHERE answer='answer1'";
$queryy = mysql_query($sql1);
while($antw1 = mysql_fetch_assoc($queryy)) {
$antwoord1++;
}


/// Dit is de som voor het berekenen van de aantal %
$answer1 = $total_votes / 100 * $antwoord1;


echo "Totaal: $total_votes <br />"; // totale stemmen
echo "Antwoord1: $antwoord1 <br />"; //// totaal mensen die op antwoord1 gestemd hebben
echo "Answer1: $answer1"; /// in procenten

?>

Alvast bedankt voor jullie hulp
Percentage van 1 stem:

( StemmenVoor1Optie / TotaaalAantal ) * 100
Erg krom:

<?php

$sqlt         = "SELECT * FROM poll_answer";
$queryt       = mysql_query($sqlt);
while($antw   = mysql_fetch_assoc($queryt)) {
        $total_votes++;
}
?>


waarom dan niet simpel dan
SELECT COUNT(1) AS total_votes FROM poll_answer;

Dan is dit ook krom:

<?php
$sql1         = "SELECT * FROM poll_answer WHERE answer='answer1'";
$queryy       = mysql_query($sql1);
while($antw1  = mysql_fetch_assoc($queryy)) {
      $antwoord1++;
}
?>


waarom dan niet iets als:
SELECT answer,count(1) AS total_answer1 FROM poll_answer WHERE answer='answer1'


Maar met een beetje gezond verstand maak je er natuurlijk 1 query van waarbij je alles in ene keer berekend, dus ook het percentage...
0.00909090909091 krijg ik als uitkomst nu , daarom vind ik het ook steeds raar .
Dan zul je het nog even moeten afronden.

[php]ceil[/php]
[php]floor[/php]
ik heb hem afgerond met round , maar dus 0 % , maar ik heb van de 11 antwoorden 10 met antwoord.

Dus het zal ongeveer rond de 95 % moeten zitten ?
$answer1 = ($antwoord1 * 100) / $totaal_votes;

gewoon kruislinks vermidigvuldigen:

totaal  antwoord1
100     ?

oftuwel (a1 * 100) / t

en dan nog round($answer1);
Ja dat had ik al , maar super bedankt ! hij doet perfect.
SELECT AVG(COUNT(poll_id)) WHERE poll_id=1;

Zo werkt het geloof ik ook, niet zeker.

Reageren