Forum » Server-Side scripting » Gemiddelde
http://www.hogwartscastle
Berichten: 217
avatar
Offline Stuur privebericht
Hi,

Ik heb een stem script en nu wil ik dat hij de gemiddelde uitreken. Ik heb nu 1 resultaat met een cijfer:10. Maar hoe kan het dat hij als Gemiddelde score: 5,0 aangeeft. Dan moet hij toch 10,0 aangeven?

Code | Selecteer Alles
minimaliseren
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
$cijfersQuery $core->mysql->query("SELECT
                                        id,
                                        cijfer
                                    FROM
                                        product_stemmen
                                    WHERE
                                        product_id = '"
.$core->mysql->escape($_GET{'id'})."'");
    
    
    
            
$pageTitle $core->entities($productFetch['naam']);
            
$pageCat $core->entities($productFetch['cat']);
            include 
'includes/header.php';
            include 
'includes/left.php';
            
            
$totaal = array();
            
$i 1;
            while(
$cijfersFetch $core->mysql->fetch($cijfersQuery))
            {
                
$totaal['hi'] = $totaal['hi'] + $cijfersFetch['cijfer'];
                
$i++;

            }
            
            
$gemiddelde $totaal['hi'] / $i
            echo 
'Totaal: '.$totaal['hi'].' Gemiddelde score: '.number_format($gemiddelde1','' ');

Laatst gewijzigd door Shahiem op 2011-01-11 18:32:32
11-01-2011 18:32
Dit topic is 216 keer bekeken door 44 verschillende leden
Reacties op: "Gemiddelde"
1
Berichten: 830
avatar
Offline Stuur privébericht
Code | Selecteer Alles
minimaliseren
1
2
$gemiddelde $totaal['hi'] / $i;  
            echo 
'Totaal: '.$gemiddelde.' Gemiddelde score: '.number_format($gemiddelde1','' ');


Moet het niet zo zijn ?
11-01-2011 18:38
JustSimpel VOF
Berichten: 840
avatar
Offline Stuur privébericht
omdat je in het begin $i al op 1 zet dan staat er $i++ dat maakt $i = 2 en 10/2 is 5

Je moet $i = 0; neer zetten
11-01-2011 18:40
Berichten: 2123
avatar
Offline Stuur privébericht
Je kunt deze berekening ook gewoon gelijk door MySQL laten uitvoeren, dat is sneller en logischer:

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_avg
11-01-2011 19:23
Berichten: 637
avatar
Offline Stuur privébericht
@TS

Hier nog een voorbeeld. Misschien is deze makkelijker staan voorbeelden bij. SQL versie is dit he .

http://www.w3schools.com/sql/sql_func_avg.asp
11-01-2011 19:27
http://www.hogwartscastle
Berichten: 217
avatar
Offline Stuur privébericht
Ik doe het liever met PHP omdat dat andere op de een of andere manier niet lukt

Maar als ik nu $i = 0; doe dan weergeeft hij 0, terwijl er volgensmij 1,6 moet komen te staan
11-01-2011 20:52
Rapifia Europe
Berichten: 3716
avatar
Offline Stuur privébericht
AVG werkt zo:
SELECT AVG(kolomnaam) FROM tabel WHERE iets='iets'.
Of in nederlands:
SELECTEER GEMIDDELDE(kolomnaam) VAN tabel WAAR iets='iets'.
11-01-2011 21:09
What else?
Berichten: 1180
avatar
Online Stuur privébericht
Als je dan nog is een tabel wilt besparen, dan doe je het zo dat het gemiddelde wordt berekend wanneer de stem wordt ingevoerd, zo hoef je niet een extra tabel met "stemmen" te hebben

zoals:
Code | Selecteer Alles
minimaliseren
1
2
3
4
SELECT AVG(product_stemmen
AS 
ProdAvarage 
FROM stemmen 
WHERE product_id 
"' . $id . '"
11-01-2011 21:17
Reageer op: "Gemiddelde"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden