Avatar billede teck Nybegynder
06. januar 2005 - 17:21 Der er 5 kommentarer

Top 10 liste

Hej,

Jeg har ligeså lige lavet et stykke kode, så læserne på min hjemmeside kan give mine artikler point. Jeg mangler nu bare et stykke kode der viser en top 10 liste over de artikler der har fået flest point. Koden der viser pointene ser sådan her ud:

<?
        $query = mysql_query("SELECT AVG(vote) as average FROM vote WHERE artikel='$id'");
        while($row = mysql_fetch_array($query)) {
        $x = 0;

while($x<round($row["average"])) {
  echo"<img src='stjerne.gif'>";

  $x++;
}
}
?>

Min databse er bygget sådan op at der er en tabel ved navn "vote" der indeholder et felt "artikel", hvor tallet henviser til "id" i den tabel der hedder "gw_artikel".. Listen skulle gerne udskrive navnet på artiklen som er i feltet "titel".

Håber der er en der kan hjælpe, da jeg sidder lidt fast i det!
Avatar billede jakoba Nybegynder
06. januar 2005 - 17:28 #1
din sql kommando forudsætter at der er et felt der hedder vote i tabellen vote.
    $query = mysql_query("SELECT AVG(vote) as average FROM vote WHERE artikel='$id'");

Det er almindeligt, og efter min mening tåbeligt, at lave sådan nogen navne der betyder een ting det ene sted og noget andet et andet sted, det giver forvirring og kode der er svær at forstå.

men hvis du virkelig har sådan et felt der hedder vote i din tabel, så burde den kode du viser faktisk virke.
Avatar billede teck Nybegynder
06. januar 2005 - 17:50 #2
Der er et felt som hedder vote... og koden virker sådan set fint nok... det kode jeg har sat ind viser de point en specifik artikel har fået... det jeg gerne vil have lavet er et stykke kode der går ind og laver en top 10 liste over de artikler med de højeste point... altså

1. artikel 10
2. artikel 33
3. artikel 5
osv.
Avatar billede coderdk Praktikant
06. januar 2005 - 18:09 #3
Burde det ikke være noget i stil med:

SELECT a.id, AVG(v.vote) AS average FROM vote AS v INNER JOIN artikel AS a ON v.artikel = a.id GROUP BY a.id ORDER BY average DESC LIMIT 10
Avatar billede coderdk Praktikant
06. januar 2005 - 18:09 #4
(for at få artikelid'er og deres average vote)
Avatar billede teck Nybegynder
06. januar 2005 - 19:00 #5
Jeg har prøvet at lave følgende stykke kode:

<?
include("connect.php");
$query = mysql_query("SELECT a.id, AVG(v.vote) AS average FROM vote AS v INNER JOIN gw_artikel AS a ON v.artikel = a.id GROUP BY a.id ORDER BY average DESC LIMIT 10");
while($r = mysql_fetch_array($query)) {

$navn = $r["titel"];

echo  "$navn";
}
?>

men jeg synes ikke lige jeg kan få den til at vise noget!
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