Statistiek weergave en berekening

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Www JdeRuijterNL

www JdeRuijterNL

20/07/2010 10:55:26
Quote Anchor link
Wat ik eigenlijk wil is van alle informatie die ik heb in een tabel, bijvoorbeeld:

- Supermarkt 1 - 2 meldingen
- Supermarkt 2 - 8 meldingen
- Supermarkt 3 - 10 meldingen

deze informatie in percentages uitrekenen en die doorsturen naar een een grafisch minibalk (zoals deze in poll statistieken te zien is.
Waarbij natuurlijk het langste balkje de meeste meldingen representateren.

De data heb ik al in een $result_array staan.
Dus alles na dat punt is voor mij nog wazig.
Gewijzigd op 20/07/2010 10:58:14 door Www JdeRuijterNL
 
PHP hulp

PHP hulp

22/12/2024 07:56:57
 
Joren de Wit

Joren de Wit

20/07/2010 11:04:48
Quote Anchor link
Je zult het totaal aantal meldingen nog even uit moeten rekenen, bijvoorbeeld in een query met SUM() over alle records. Vervolgens kun je dan eenvoudig de percentages uitrekenen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$precentage
= ($aantal_meldingen / $totaal_aantal) * 100;
?>


En vervolgens het balkje tonen met behulp van bijvoorbeeld CSS: een width in percentages...

Edit: voorbeeldje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
$aantal_meldingen
= 200;
$totaal_meldingen = 250;

$percentage = round($aantal_meldingen / $totaal_meldingen * 100);
?>


<html>
<head>
<style type="text/css">
    .outer_box {
        width: 500px;
        height: 50px;
        border: 1px solid black;
    }
    .inner_box {
        width: <?php echo $percentage; ?>%;
        height: 100%;
        background-color: yellow;
    }
</style>
</head>

<body>
    <div class="outer_box">
        <div class="inner_box"></div>
    </div>
</body>
</html>
Gewijzigd op 20/07/2010 11:10:12 door Joren de Wit
 
Www JdeRuijterNL

www JdeRuijterNL

20/07/2010 11:38:33
Quote Anchor link
Dank voor uw inzicht, ik ga hier mee aan de slag.

Perfecte resultaat.
Alleen vanwege de foreach($result as $object);


endforeach;

Heb ik de CSS boven aan de code gezet en niet in de head, omdat ik alles na de head niet vermenigvuldigd wil hebben na alle inhoud.
Gewijzigd op 20/07/2010 14:31:51 door www JdeRuijterNL
 
Www JdeRuijterNL

www JdeRuijterNL

20/07/2010 14:49:03
Quote Anchor link
Ok, de oplossing op de manier waarop ik het heb gedaan geeft natuurlijk een validatie fout omdat ik het CSS bestand niet op de juiste positie heb. (binnen de head) logisch natuurlijk.

Hoe zou je een foreach bovenaan de pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
$all_supermarkt = Vers_get::find_all_supermarkt();
                
                foreach($all_supermarkt as $object_super):
                $supermarkt_sum = Vers_get::sum_per_topic($object_super->supermarkt);
                $supermarkt_count = Vers_get::count_all();
                
                $percentage = round($supermarkt_sum / $supermarkt_count, 2) * 100;    
endforeach;


door kunnen laten gaan in het midden van de pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<p class="bold"><?=$object_super->supermarkt; ?> (<?php echo $supermarkt_sum;?>x melding)</p>
                <p class="stat<?php echo substr($object_super->supermarkt, 0 ,4); ?>"><?=$percentage;?>%</p>




UPDATE:
LAat maar, ik heb er een inline style van gemaakt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<p style="background:#eb6;
                     border:1px solid #fff;
                     color:#fff;
                     font-weight:bold;
                     height:18px;
                     padding:3px;
                     width:<?php echo $percentage; ?>%;"><?=$percentage;?>%</p>
Gewijzigd op 20/07/2010 15:19:55 door www JdeRuijterNL
 
Joren de Wit

Joren de Wit

20/07/2010 22:39:15
Quote Anchor link
Een andere oplossing was het gebruik van een array geweest: in je foreach sla je de percentages tijdelijk op in de array en als je ze nodig hebt echo je ze simpelweg vanuit die array...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.