percentage uitrekenen

Status
Niet open voor verdere reacties.

Kriztiaan

Gebruiker
Lid geworden
14 mrt 2007
Berichten
18
Ik zou met het volgende "systeem" het percentage willen berekeken. Is dit mogelijk?

ik weet dat die variabel in de where niet echt top scripting is maar het werkt.

Berekenen van het aantal per persoon

(<b><?php include("config_xxx.php");$tellen = mysql_query("SELECT COUNT(iid) as aantal FROM item WHERE naam='".$naam."'") or die(mysql_error());$resultaat = mysql_fetch_assoc($tellen);echo $resultaat['aantal']; ?></b>)

van de

Berekenen van het aantal totaal

(<b><?php include("config_xxx.php");$tellen = mysql_query("SELECT COUNT(iid) as aantal FROM item'") or die(mysql_error());$resultaat = mysql_fetch_assoc($tellen);echo $resultaat['aantal']; ?></b>)

script voor percentage

is %
 
Deel het aantal per-persoon door het totaal aantal, en vermenigvuldig het met 100.

Dus bijvoorbeeld:
PHP:
<?php
    include("config_xxx.php");
    $tellen = mysql_query("SELECT COUNT(iid) as aantal FROM item WHERE naam='".$naam."'") or die(mysql_error());
    $resultaat = mysql_fetch_assoc($tellen);
    $pp_aantal = $resultaat['aantal'];

    $tellen = mysql_query("SELECT COUNT(iid) as aantal FROM item") or die(mysql_error());
    $resultaat = mysql_fetch_assoc($tellen);
    $tot_aantal = $resultaat['aantal'];

    $percentage = $pp_aantal / $tot_aantal * 100;
?>

Maar persoonlijk zou ik het aantal zo "uitrekenen":
PHP:
<?php
    include("config_xxx.php");
    $tellen = mysql_query("SELECT iid FROM item") or die("Error 1");
    $tot_aantal = mysql_num_rows($tellen);
    $tellen = mysql_query("SELECT `iid` FROM `item` WHERE `naam`='$naam'") or die("Error 2"); // Nette SQL-syntax... Qua resultaat geen verschil met de vorigen, maar het is een tic...
    $pp_aantal = mysql_num_rows($tellen);

    $percentage = $pp_aantal / $tot_aantal * 100;
?>

Gr. Robin
 
Laatst bewerkt:
Denk dat er ergens een foutje inzit ik krijg namelijk geen enkele output maar ook geen error.
 
Dit script geeft ook geen output. Het stopt alleen het percentage in een variabele.

Als je het percentage wilt laten zien doe je:

PHP:
echo $percentage, '%';
 
Ja, maar ik neem aan dat dit maar een klein stukje is uit een groter script??

Gr. Robin
 
Klopt, was ook aan Kriztiaan gericht. Jouw script is prima... Ik zou het ook in een variabele opslaan, zodat ik het later nog kan (her)gebruiken.
 
Super, ik had de echo verkeerd geplaatst.

Ik heb nu netjes een output maar heb er nog een vraagje over.
is het mogelijk om de output enkel tot voor de comma weer te geven.
of tot 2 cijfers na de comma.?

nu heb ik als output : Aantal geplaatst:(6) van de (14) = 42.857142857143%


bedankt!
 
Zonder komma doe je zo:

PHP:
echo round ( $percentage ), '%'; // Afronden (4 naar beneden, 5 naar boven) -> 43%
echo floor ( $percentage ), '%'; // Afronden (naar beneden) -> 42%
echo ceil ( $percentage ), '%'; // Afronden (naar boven) -> 43%

Als je het in een bepaald aantal decimalen wilt hebben doe je:

PHP:
echo number_format ( $percentage, 2 ), '%'; // Afronden (tot op twee decimalen) -> 42.86%
 
Houd wel rekening met de bekende fout "delen door 0". Als je hier geen controle voor inbouwd kan het script flink knallen en foutmeldingen uitspugen.

Edit: overigens is het netter om de COUNT(..) in MySQL te doen. Zo wordt er minder data over de lijn verzonden (1 getal in plaats van alle id's).
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan