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?
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
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.
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.
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