Avatar billede EIHP Juniormester
10. august 2002 - 20:17 Der er 6 kommentarer og
1 løsning

Top 10 liste med asp

Jeg har lavet et forum med asp og access. Jeg vil godt ha en top 10 liste, over hvem der har skrevet mest...
Den skal bare tælle hvor mange gange brugerene har skrevet hver... Og de ti højest på listen.
Eks:
Kurt - 10524
Jesper - 10332
Mikael - 9714
Jiska - 9218
Claus - 7466
Ovs...

Men hvordan skal kode se ud???
Avatar billede kichian Nybegynder
10. august 2002 - 20:19 #1
select top 10 brugernavn,count(*) from din_tabel  group by brugernavn order by count(*) desc
Avatar billede kichian Nybegynder
10. august 2002 - 20:19 #2
Og det var et svar.
Avatar billede EIHP Juniormester
10. august 2002 - 20:27 #3
Den forstod jeg ik...
Avatar billede EIHP Juniormester
10. august 2002 - 20:42 #4
Den skal bare tælle fra records "Unavn" fra Tabel "Indlæg"
Avatar billede EIHP Juniormester
10. august 2002 - 20:58 #5
Hallo
Avatar billede eagleeye Praktikant
10. august 2002 - 21:58 #6
Du skal lave en SQL sætning som laver din top 10 liste.

Til at tælle records bruges count(kolonnenavn). For at få den som har flest indlæg først så bruges ORDER BY Count(kolonnenavn) DESC. For at vælge ti ud så skal der TOP 10 ind i efter SELECT.

Så din SQL kan se sådan ud:

SQL = "SELECT TOP 10 Unavn, Count(Unavn) as Antal FROM [Indlæg] GROUP BY Unavn ORDER BY Count(Unavn) DESC"

'for at udskrive antallet kan du bruger dit recordset (rs) rs("antal"):
set rs = conn.execute(SQL)

do while not rs.EOF
  Response.write rs("Unavn") & " - " & rs("antal") & "<br>"
  rs.movenext
loop
Avatar billede eagleeye Praktikant
10. august 2002 - 22:07 #7
Bemærk ved brug af Access og TOP vil alle med samme antal tælle for 1 ud af de 10 hvis der ialt er flere end 10 men ikke hvis det totale antal er mindre end 10... hmm det lyder lidt dumt men et eks..

Hvis du har dette for antal indlæg: 450, 230, 120, 110, 90, 50, 30, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3. Så vil du får 10 forskellige ud det vil side du har ialt 19 records ud da du vil få alle hvor antallet er 4 og ikke kun 2 hvor antallet er 4.

Eks som stopper udskrivningen efter 10 records er udskrevet:

set rs = conn.execute(SQL)
nr = 1
Do while (not rs.eof) AND (nr <= 10)
  Response.write rs("Unavn") & " - " & rs("antal") & "<br>"
  nr = nr + 1
  rs.movenext
Loop
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
Kurser inden for grundlæggende programmering

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