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

257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)