webForumDet fria alternativet

Gör en topp tio

ASP

6 svar · 237 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Jag håller på med ett forum och nu vill jag göra en liten topplista där jag skriver ut vilka som har gjort mest inlägg. Alla namnen har jag sparat i en kolumn som heter skribent, alltså jag har inte sparat hur många inlägg varje medlem har gjort i en kolumn vilket gör detta svårare. Hur ska jag nu genom att ha alla namnen i kolumn skribent skriva ut toptio?

Medlem sedan dec. 200012 464 inlägg
#2
query = "select count(*) as inLagg, skribent from inlagg inner join skribent on inlagg.vem = skribent.id group by skribent order by 1 desc"

set rs = connect.execute(query)
c = 0
do while not rs.eof
'skriv ut
c = c + 1
if c = 10 then exit do
rs.movenext
loop

Du får anpassa tabell och kolumnnamn.

Medlem sedan feb. 20011 498 inlägg
#3

Förstår inte så mycket av den koden, vilka saker ska jag ändra?

Medlem sedan dec. 200012 464 inlägg
#4

jag förutsatte att du har två tabeller, en för alla inlägg och en för alla användare, och att det finns en kolumn i inläggstabellen som anger vem som har gjort inlägget. Om det här inte stämmer med hur dina tabeller är definierade, så får du beskriva det du har, mer noggrant.

Medlem sedan feb. 20011 498 inlägg
#5

Jag har bara en tabell som heter forum. I den tabellen finns det en kolumn som heter skribent och i den finns det en massa olika namn som finns olika många gånger beroende på hur många inlägg den personen har gjort. Nu vill jag alltså skriva ut en topp 10-lista där den som har mest inlägg står först. Hoppas du förstår bättre nu.

Medlem sedan dec. 200012 464 inlägg
#6

Jag förstår :h

query = "select count(*) as antal, skribent from forum group by skribent order by 1 desc"

set rs = connect.execute(query)
c = 0
if  not rs.eof then
   response.write "De 10 som har minst egna liv <br>"
   do while not rs.eof
         c = c + 1
         response.write c & ". " & rs("skribent") & " " & rs("antal") & " inlägg & "<br>"
        c = c + 1
        if c = 10 then exit do
        rs.movenext
   loop
end if
Medlem sedan feb. 20011 498 inlägg
#7

Tack så mycket LarsG.
Funkar utmärkt nu :birp

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)