Gemiddelde uitreken
Wat ik wil:
Gemiddelde uitreken van een aantal vakken.
De vakken staan in de tabel 'vakken' (id | naam (van gebruiker) | vak), dan moet ie met de ding $naam de vakken van naam pakken, SELECT * FROM vakken WHERE naam = '".$naam."'..
Tot zover lukt het mij :)..
Maar nu moet het nog uitgerekend worden:
de cijfers staan in de tabel 'cijfers' (id | naam (van gebruiker) | vak | cijfer | waarde).
Wat er nu moet gebeuren.
In ding cijfer moet van ieder vak waar cijfers zijn alle cijfers bij elkaar, dit delen door alle waardes bij elkaar, en dat gemiddelde van dat vak 'onthouden' in de pagina.
Dan moet ie alle gemiddeldes (gewone cijfers, 7.5 enzo) bij elkaar optellen, en delen door de vakken met cijfers.
Ik hoop dat het zo te begrijpen is.. kan dit, weet iemand hoé dit kan?..
Als er niet genoeg info is: Ask for it, als je me tekst niet begrijpt, the same thing ;)...
BVD
Jorik
Mysql kent de functie AVG(), zoek die eens op :)
Ik snap het niet..
heb je een voorbeeld, waar het al in verwerkt is ofzo :$.. of een ander script waarin het vwerkt is zodat ik dat kan editten (ben beetje n00b op php gebied :$)
pak een boek en lees...
als je het dan nog nie weet....
dan kan je altijd noghier terecht...
Was dat subtiel, of huppel ik nu in een tutu??
O.o
Die is trouwens om half tien 's avonds gesloten.. (dit forum neit :P)
Heb ff bij MySQL site die function AVG() opgezocht, lekker vaag.. snap het echt niet :$
Deze dus
Deze voor alle functies
Deze voor AVG() die je nodig hebt
-edit-
Hmm, net te laat :)
Gewijzigd op 04/10/2004 21:33:00 door dutchcamel
AVG(`veldnaam`) ...
Kan met niet voorstellen dat er een fucntie is voor het rekensommetje:
$vak1 = $allecijfersvak1/$allewaardesvak1
$vak2 = ...
$...
$vak1+$vak2+.. / COUNT(vakken)
ofzoiets :)
Je gebruikt het zo :
SELECT AVG(`veldnaam`) as `gemVeld` FROM `tabel`
Quote:
AVG(expr)
Returns the average value of expr. mysql> SELECT student_name, AVG(test_score)
-> FROM student
-> GROUP BY student_name;
Returns the average value of expr. mysql> SELECT student_name, AVG(test_score)
-> FROM student
-> GROUP BY student_name;
Men neme interglot.com, zoeke op 'average' en vinden dat het gemiddelde betekend. Wat ook wel logisch is gezien je vraag...
-edit-
Damn weer te laat omdat ik die quote opzocht :( :P
Gewijzigd op 04/10/2004 21:43:00 door dutchcamel
SELECT begrijp ik,is selecteer, AVG('veldnaam') begrijp ik ook, maar as :s, of is dat als, dat het $gemVeld hem opvraagd? en FROM begrjip ik ook wel :)..
Maar doet avg dan $allesbijelkaarvak/$allewaardesvak1 ? nee toch..
en ik weet niet hoeveel vakken er zijn, dat is bepalend aan user..
een rijnaam krijgt als : (dat zou het anders zijn dacht ik :P) krijg je : .
Met as kun je een veld een andere naam geven, ipv dat je na een fetch als deze : Maar iemand een idee hoe het volledige script nu moet :S.. want ik snap er echt neit veel van :P
Je zal toch ook zelf wat moeten doen :)
Zal ik eens een poging doen..
- Gemiddelde uitrekenen per vak, heb ik bij de vakken zelf gedaan via:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$vakTotaal = 0;
$cijferTotaal = 0;
$waardeTotaal = 0;
$tellingTotaal = 0;
$result = mysql_query("SELECT cijfer,waarde,cijfer*waarde AS telling FROM cijfers WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'") OR die ("Kon geen verbinding maken met MySQL.") OR die ("Kon geen verbinding maken met MySQL");
while ($row = mysql_fetch_object($result)) {
$vakTotaal++;
$cijferTotaal += $row->cijfer;
$waardeTotaal += $row->waarde;
$tellingTotaal += $row->telling;
}
$gemiddelde = number_format(($tellingTotaal / $waardeTotaal), 1, '.', '');
echo $gemiddelde;
?>
$vakTotaal = 0;
$cijferTotaal = 0;
$waardeTotaal = 0;
$tellingTotaal = 0;
$result = mysql_query("SELECT cijfer,waarde,cijfer*waarde AS telling FROM cijfers WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'") OR die ("Kon geen verbinding maken met MySQL.") OR die ("Kon geen verbinding maken met MySQL");
while ($row = mysql_fetch_object($result)) {
$vakTotaal++;
$cijferTotaal += $row->cijfer;
$waardeTotaal += $row->waarde;
$tellingTotaal += $row->telling;
}
$gemiddelde = number_format(($tellingTotaal / $waardeTotaal), 1, '.', '');
echo $gemiddelde;
?>
Dan de cijfers van alle vakken bij elkaar optellen, en dan delen door het aantal vakken waar cijfers instaan...
Ik loop direct al vast, het gemiddelde per vak wil wel, maar daarnaar, aangezien ik ook niet weet welke vakken er zijn, hoe ze heten, etc.. kan ik ook niet zeggen pak dit en dat uit mysql voer die rekensom eruit, en doe het antwoord+antwoord2+.. /aantalvakken..
HELP please :stil: