Avatar billede buttersi Nybegynder
20. april 2008 - 14:27 Der er 15 kommentarer

rating system

Jeg er igang med at lave et rating system, men er kommet ind i nogle problemer.

Jeg har opbygget det således:

En tabel der hedder "babes" og en tabel der hedder "vote".

Vote tabellen indeholder følgende: name og vote.

Når jeg så ville finde den samlet rating af en babe tager jeg gennemsnitet af votes, så koden ser således ud:

"SELECT avg(vote) as gennemsnit FROM vote WHERE name = '$name'".

Det virker fint nok, men nu vil jeg have en liste som viser en topliste over dem der har fået bedst gennemsnits rating. Nogen der har en ide om hvordan jeg skal takle det?
Avatar billede w13 Novice
20. april 2008 - 14:29 #1
Kan du ikke bare rette WHERE til:
ORDER BY gennemsnit
Avatar billede buttersi Nybegynder
20. april 2008 - 14:34 #2
Det prøvede jeg også først "SELECT avg(vote) as gennemsnit FROM vote ORDER BY gennemsnit DESC" men så får jeg et samlet gennemsnit over alle navnene.
Avatar billede Slettet bruger
20. april 2008 - 14:34 #3
Hvad siger PHPmyAdmin når du executer den SQL streng?
Avatar billede Slettet bruger
20. april 2008 - 14:35 #4
Uhh... kan ikke huske dette...
prøv med
$sql = "SELECT AVG(vote) as gennemsnit FROM vote WHERE name = '".$name."' GROUP BY name";
Avatar billede buttersi Nybegynder
20. april 2008 - 14:40 #5
Der sker ikke noget når jeg skriver det
Avatar billede buttersi Nybegynder
20. april 2008 - 14:44 #6
Men jeg har heller ikke noget $name i den kode. Kan lige prøve at poste det hele som det ser ud lige nu:

$antalvote = mysql_query("SELECT AVG(vote) as gennemsnit FROM vote WHERE name = '$name' GROUP BY name");
            while($data = mysql_fetch_array($antalvote)) {
           
            echo '<table width="245" border="0" cellpadding="0" cellspacing="0">
              <tr>
                <td width="15"><span class="style31">1</span></td>
                <td width="177"><span class="style34"><img src="flag/ru.png" width="16" height="11" /> '.$data[name].'</span></td>
                <td width="53"><div align="right"><span class="style38">'.$data[gennemsnit].'</span></div></td>
              </tr>
            </table>';
           
            }


det jeg gerne vil have det til at ende med at se ud er som jeg har lavet det her i html http://arto-baggrunde.dk/ebab/ i midten af siden.
Avatar billede Slettet bruger
20. april 2008 - 14:58 #7
Okay prøv lige ændre:
$antalvote = mysql_query("SELECT AVG(vote) as gennemsnit FROM vote WHERE name = '$name' GROUP BY name");

til
$sql = "SELECT AVG(vote) as gennemsnit FROM vote WHERE name = '$name' GROUP BY name";
$antalvote = mysql_query($sql);
echo "<br />--> ".$sql."<br />";
Avatar billede Slettet bruger
20. april 2008 - 14:58 #8
og skriv her hvad den skriver ud.
Avatar billede buttersi Nybegynder
20. april 2008 - 15:00 #9
--> SELECT AVG(vote) as gennemsnit FROM vote WHERE name = '' GROUP BY name
Avatar billede Slettet bruger
20. april 2008 - 15:01 #10
Den modtager ikke noget data fra $name, det kunne være derfor den ikke hiver noget ud.
Avatar billede buttersi Nybegynder
20. april 2008 - 15:03 #11
Jeg tror jeg har opbygget systemet lidt forkert. altså det virker fint herinde http://arto-baggrunde.dk/ebab/babe.php?id=3 når den bare skal finde gennemsnittet for en bestemt.
Avatar billede Slettet bruger
20. april 2008 - 16:07 #12
ja pt. skal den ha' et navn.
Hvad er din plan da?
Avatar billede buttersi Nybegynder
20. april 2008 - 17:13 #13
Jeg fik lavet en lidt alternativ løsning. Lavede et felt i tabellen "babes" som hedder rating. Hver gang en person så går ind og stemmer så regner den gennemsnittet ud og updater rating feltet til den nuværende gennemsnit.

Så resultatet ser nu således ud: http://arto-baggrunde.dk/ebab/
Avatar billede Slettet bruger
20. april 2008 - 18:09 #14
Ja sådan kan man også gøre det, men synes du skal gøre det ordenligt.
Avatar billede w13 Novice
28. april 2008 - 22:27 #15
Hvis du selv løste problemet, skal du lige oprette et svar og acceptere det, så spørgsmålet lukkes og du får dine point igen.s
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