Avatar billede fbb Nybegynder
13. januar 2003 - 23:00 Der er 7 kommentarer og
1 løsning

Gennemsnit og top5

Hej!
Jeg ved ikke helt hvordan jeg skal lave det her, men. Jeg har dette stykke kode, som jeg bruger til at regene gennemsnit ud:
<?
require_once("db.php");
$rs = mysql_query("select point from kommentarer where news_id = '$nid'");
$cnt = mysql_num_rows($rs);
$total = 0;
while($rw = mysql_fetch_array($rs)) {
$total+=(int)$rw["point"];
}
if ($cnt == "0") { echo "Denne scooter har ikke fået nogle point<br>"; } else {
$ca = $total/$cnt;
echo"Denne scooter har fået i gennemsnit  " .number_format ( $ca, 1 );
echo"@5<br>";
}
?>

Den tag efter: news_id = '$nid' så tag den for den rigtige bruger.

Men hvordan laver jeg så en top 5 der udskriver:
Top 5:
Denniz - 4,9@5
Morten - 4,2@5
Peter  - 3,6@5
Ida    - 3,4@5
Thomas - 2,0@5


Håber i forstår eller spørg ;)
Avatar billede jakoba Nybegynder
13. januar 2003 - 23:08 #1
top5 af gennemsnit
<?php
$rs = mysql_query("
    select brugernavn, AVG(point) as gennemsnit
    from kommentarer
    group by news_id
    order by gennemsnit desc
    limit 0,5
") or die( mysql_error() );

while($rw = mysql_fetch_array($rs)) {
    echo $rw['brugernavn'] ." - " .$rw['gennemsnit'] ."<br>";
}
?>

mvh JakobA
Avatar billede fbb Nybegynder
13. januar 2003 - 23:09 #2
prøver den lige!
Avatar billede fbb Nybegynder
13. januar 2003 - 23:17 #3
ok, den virker nice, jeg har så lige et problem til, jeg har ikke en der hedder brugernavn i min kommentar, jeg har en der hedder news_id = den er nick i mysql "info"

Det vil sige, news_id (fra kommentarer) skal passe med id og udskrive nick (fra info)

Hvis du kan hjælpe mig med det sætter jeg den op til 100, hvis ikke for du 60 med det sammen!

Spørg hvis du ikke forstår ;)
Avatar billede jakoba Nybegynder
13. januar 2003 - 23:26 #4
feltnavnet 'brugernavn' var også et gæt, sider du ikke spørgsmålet fortæller hvad det felt hedder. vi kan sagtens hente det fra en anden tabel via 'news_id'

$rs = mysql_query("
    select info.nick as navn, AVG(kommentarer.point) as gennemsnit
    from kommentarer, info
    where kommentarer.news_id = info.id
    group by kommentarer.news_id
    order by gennemsnit desc
    limit 0,5
") or die( mysql_error() );

while($rw = mysql_fetch_array($rs)) {
    echo $rw['navn'] ." - " .$rw['gennemsnit'] ."<br>";
}

ingen grund til at sætte points op. 60 er mange.

mvh JakobA
Avatar billede fbb Nybegynder
13. januar 2003 - 23:31 #5
nice det funker jo altfor nice! (sidst ting)
Den udskriver sådan her:
Frederik - 4.7500
kan det ikke komme til at se sådan her ud:
Frederik - 4.7@5
Avatar billede jakoba Nybegynder
13. januar 2003 - 23:38 #6
while($rw = mysql_fetch_array($rs)) {
    echo $rw['navn'] ." - " .number_format($rw['gennemsnit'],1) ."@5<br>";
}

se: http://dk.php.net/manual/en/function.number-format.php
number_format formaterer tallet med så mange (eller få) decimaler du vil
Avatar billede fbb Nybegynder
13. januar 2003 - 23:38 #7
Og en til, navn skal værer et link, hvis du kan!
Avatar billede fbb Nybegynder
13. januar 2003 - 23:39 #8
(mange tak skal du ha!!
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