---
title: "Topplista"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/61993-topplista"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "koltrasten"
published: "2002-12-12T16:19:19.000Z"
updated: "2002-12-13T20:38:01.000Z"
replies: 13
views: 290
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/61993-topplista"
---

# Topplista

## #1 — koltrasten, 2002-12-12T16:19Z

Jag skall bygga en topplista till mitt forum.
En databas innehåller för enkelhetens skull i princip bara en lista med massor med användarnamn. T.ex.
Användarnamn1
Användarnamn3
Användarnamn2
Användarnamn1
Användarnamn1
Användarnamn4
Användarnamn3
Användarnamn2
Användarnamn2
Användarnamn1

Jag vill att detta skall bli en topplista som i detta fallet skulle bli:
1\. Användarnamn1 - 4 inlägg
2\. Användarnamn2 - 3 inlägg
3\. Användarnamn3 - 2 inlägg
4\. Användarnamn4 - 1 inlägg

Hur gör man?

Permalänk: https://www.webforum.nu/p/61993

## #2 — Ekström, 2002-12-12T16:23Z

Sparar du antal inlägg i ett fält i samma tabell som användarnamnen? Det vore smart prestandamässigt iaf.

Permalänk: https://www.webforum.nu/p/884630

## #3 — koltrasten, 2002-12-12T16:37Z

Nej. I mitt forum har datatyperna:
\- Rubrik
\- Meddelande
\- Användarnamn
\- Datum

Sedan kom jag på att det hade varit skojigt att ha en topplista på de mest aktiva skribenterna. Jag har för mig det finns en speciell sak i SQL-frågan som man kan ställa för att få detta. Eller?

Permalänk: https://www.webforum.nu/p/884639

## #4 — juventus1, 2002-12-12T20:10Z

Prova det här (inte säker på att det fungerar som det ska):

```
SELECT Anvandarnamn, COUNT(Meddelande) AS msgCount
FROM Forum
GROUP BY Namn, msgCount
ORDER BY 2 DESC;
```

Permalänk: https://www.webforum.nu/p/884746

## #5 — koltrasten, 2002-12-12T20:48Z

> Kan inte använda GROUP BY med 'msgCount'

 kommer det fram

Men jag har för mig att det skall finnas något i SQL som gör detta. Tar samman alla som innehåller alla. Något i stil med COUNT...

Ingen som kan?  :q

Permalänk: https://www.webforum.nu/p/884783

## #6 — @nders, 2002-12-12T21:03Z

I juventus1s fråga ska du nog gruppera på enbart Anvandarnamn. I övrigt kan nog den fungera, utan att jag satt mig in allt för mycket i vad det hela handlar om. ;)

mvh.

Permalänk: https://www.webforum.nu/p/884796

## #7 — koltrasten, 2002-12-13T15:12Z

Hur presenterar jag det sen då?

```
<%
Set Connect = Server.CreateObject("ADODB.Connection")
SQL = "SELECT Anvandarnamn, COUNT(Meddelande) AS msgCount FROM Forum GROUP BY Anvandarnamn ORDER BY 2 DESC;"
Set RecSet = Connect.Execute(SQL)
%>
```

Vad mer behövs för att visa topplistan?

Permalänk: https://www.webforum.nu/p/885282

## #8 — LarsG, 2002-12-13T16:11Z

En vanlig utskriftsloop

```
while not recset.eof
response.write recset("anvandarnamn") & " " recset("msgcount") & "<p>"
recset.movenext
wend
```

Permalänk: https://www.webforum.nu/p/885325

## #9 — koltrasten, 2002-12-13T17:44Z

Resulterar i *en tom sida*...

Är ni säkra på att SQL-frågan är korrekt?

Permalänk: https://www.webforum.nu/p/885361

## #10 — LarsG, 2002-12-13T18:00Z

Den ser väl rimlig ut. Har du något 

on error resume next

någonstans? Ta bort det i så fall.

Permalänk: https://www.webforum.nu/p/885368

## #11 — koltrasten, 2002-12-13T18:12Z

Nepp! Inga On Error Resume Next. Jag har testat att hämta data från den med SELECT \* FROM osv. och det funkar utmärkt...

**Hela** min kod ser alltså ut så här:

```
<%
Set Connect = Server.CreateObject("ADODB.Connection")
' <--- Koppling till mySQL-databas.
<%
SQL = "SELECT Anvandarnamn, COUNT(Meddelande) AS msgCount FROM Forum GROUP BY Anvandarnamn ORDER BY 2 DESC;"
Set RecSet = Connect.Execute(SQL)

Do Until RecSet.EOF
%><%=RecSet("Anvandarnamn")%><%
recset.movenext
Loop
```

Inte ett dugg visas...

Permalänk: https://www.webforum.nu/p/885373

## #12 — LarsG, 2002-12-13T19:33Z

Om det finns data i tabellen forum så skall det bli ett resultat av frågan.

Lägg till lite testutskrifter

```
<%
Set Connect = Server.CreateObject("ADODB.Connection")
' <--- Koppling till mySQL-databas.
<%
SQL = "SELECT Anvandarnamn, COUNT(Meddelande) AS msgCount FROM Forum GROUP BY Anvandarnamn ORDER BY 2 DESC"
Set RecSet = Connect.Execute(SQL)

if  recset.eof then
    response.write " Tomt <br>"
else
   response.write " Inte tomt <br>"
Do Until RecSet.EOF
%><%=RecSet("Anvandarnamn")%><%
recset.movenext
Loop
end if
%>
```

Det borde komma någon utskrift.

Permalänk: https://www.webforum.nu/p/885408

## #13 — koltrasten, 2002-12-13T20:36Z

Den var tomt, alltså verkar SQL-frågan vara felaktig..?

Vad kan detta vara?

Permalänk: https://www.webforum.nu/p/885427

## #14 — koltrasten, 2002-12-13T20:38Z

Jag kan tillägga att det måste vara min PWS som strular. Det funkar på webbhotellet! :)

Tack!

Permalänk: https://www.webforum.nu/p/885428

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/61993-topplista
