Avatar billede smolle Nybegynder
03. november 2005 - 10:44 Der er 3 kommentarer og
1 løsning

Finde gennemsnit af en kolonne i en database

Jeg har en tabel, hvor der er givet nogle karakterer på nogle forskellige områder. Det jeg vil have er, at der først bliver udskrevet alt indholdet af tabellen og så skal der være en tabelrække nederst, som viser gennemsnittet af alle posterne ovenfor.
Jeg har altså følgende:

<?
        $db = mysql_connect("localhost","******","******");
        mysql_select_db("******", $db);
        $foresp = mysql_query("SELECT know, hear, play, own, buy, graphic, sound, gameplay, overall, platform, comment, sex, age FROM oni WHERE graphic>0");
        while($data = mysql_fetch_row($foresp)){
        echo "<tr><td class='poll'>$data[0]</td><td class='poll'>$data[1]</td><td class='poll'>$data[2]</td><td class='poll'>$data[3]</td><td class='poll'>$data[4]</td><td class='poll'>$data[5]</td><td class='poll'>$data[6]</td><td class='poll'>$data[7]</td><td class='poll'>$data[8]</td><td class='poll'>$data[9]</td><td class='poll'>$data[10]</td><td class='poll'>$data[11]</td><td class='poll'>$data[12]</td></tr>";
        }
?>

Jeg går udfra, at man kan lave en SQL-sætning der hedder noget i retning af "SELECT avg(graphic) FROM oni WHERE graphic>0" som et eksempel (Jeg skal nemlig ikke regne de poster med, hvor der er givet 0), men hvordan får jeg dette implementeret i koden? Jeg har jo allerede en mysql_query som selecter noget andet.
Avatar billede snie97 Nybegynder
03. november 2005 - 13:11 #1
SELECT avg(graphic) AS avggraphic, know, hear, play, own, buy, graphic, sound, gameplay, overall, platform, comment, sex, age FROM oni WHERE graphic>0

Jeg er dog ikke sikker på at der er noget der hedder avg()

Ellers kan du jo bare lave en SELECT sum(graphic) AS sumgraphic FROM oni WHERE graphic > 0 og så regne gennemsnittet ud med php - $gennemsnit = $data["sumgraphic"]/mysql_num_rows($query);
Avatar billede jackass- Nybegynder
03. november 2005 - 14:47 #2
Ja enten det, eller increase en variabel $i++ og opdatere $sum hver gang loopen kører, og til sidste dividere $sum med $i, og smid resultatet i tabellen..
Avatar billede smolle Nybegynder
03. november 2005 - 21:03 #3
@snie97: I følge denne (og mange andre) side er der noget der hedder avg(): http://www.fluffycat.com/sql/sql-avg.html

Kan dog ikke få det til at virke. Den med SUM fungerer heller ikke. Ikke hvis jeg vil have alle kolonnerne med i hvert fald. Der bliver bare blank side.

@Jackass-: Kan du uddybe?
Avatar billede smolle Nybegynder
06. februar 2006 - 16:17 #4
Tager pointene tilbage.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester