Avatar billede renewester Nybegynder
22. april 2002 - 12:02 Der er 6 kommentarer og
2 løsninger

10 mest besøgte sider

Hej.

Jeg har brug for at kunne vise en statistik på antal besøgende på hver enkelt side. Hver gang en bruger klikker ind på en side, tilføjes en record i min STAT tabel med pågældende sides ID (colPid).

Hvordan viser jeg de 10 mest besøgte sider, og antal hits på hver især?

Jeg er kommet lidt af vejen med nedenstående kode - dvs. den viser jo kun de 10 største ID'er, hvilket jo ikke er meningen.

Er der mon en der kan regne den ud?

---------------------
strSQL = "SELECT TOP 10 * FROM stat ORDER BY colPid DESC"
objRS.Open strSQL, objConn, 3
objRS.MoveFirst

for i= 1 to 10
  Response.Write "Side= " & objRS("colPid")
  Response.Write "Antal besøgende= " & antal
  objRS.MoveNext
next
---------------------

Avatar billede lenn Nybegynder
22. april 2002 - 12:07 #1
Hvad hvis siden er blevet klikket på - tælles der så op et eller andet sted..?
Avatar billede lenn Nybegynder
22. april 2002 - 12:12 #2
...ELLER HVAD??????
Avatar billede renewester Nybegynder
22. april 2002 - 12:20 #3
Ja, hvis der bliver klikket på siden, tilføjes en record i STAT tabellen bl.a. indeholdende pågældende sides ID. Dvs. for hver side er der en ny record for hver eneste klik. Jeg skal så have dem talt sammen, og så fundet de 10 mest besøgte sider.
Avatar billede lenn Nybegynder
22. april 2002 - 12:33 #4
hmmm
Avatar billede peppino Nybegynder
22. april 2002 - 13:18 #5
skal
strSQL = "SELECT TOP 10 * FROM stat ORDER BY colPid DESC"
ikke være
strSQL = "SELECT TOP 10 * FROM stat ORDER BY hits DESC"
hits er = hvor mange gange der er klikket ind på den side

/Peppino
Avatar billede sbm Nybegynder
22. april 2002 - 13:19 #6
Jeg kan umiddelbart forestille mig to løsningsmuligheder...

Den første:
Du laver en
"SELECT DISTINCT colPid FROM stat"

Derefter kører du alle colPid igennem, og for hver af dem laver du en
"SELECT COUNT(*) FROM stat WHERE colPid = " & RS("colPid")

Så skal du så lave lidt håndtering af hvert resultat.

Denne løsning kan bruges på dit system som det ser ud nu, men du skal så være forberedt på at din statistik-tabel med tiden vil blive MEGET STOR. Det ville være smartere om du omstrukturerede din statistik-tabel, så hvert id havde en enkelt række i tabellen, og en talværdi der blev skrevet en op hver gang den pågældende side blev besøgt. Derefter vil det være en smal sag at lave en "SELECT TOP 10 * FROM stat ORDER BY antalhits DESC"

Just my 2 cents anyway. :-)
Avatar billede eagleeye Praktikant
22. april 2002 - 13:53 #7
Det kan laves med SQL...Hvis jeg forstår rigtig så har du en record for hver gang man har trykket på et link og ikke en rcord med et count for hver link...???

Så du skal tælle hvor mange gange et link er trykker på:



strSQL = "SELECT TOP 10 Count(stat.colPid) AS CountOfHits, stat.colPid FROM stat GROUP BY stat.colPid ORDER BY Count(stat.colPid) DESC;"
Avatar billede eagleeye Praktikant
21. september 2002 - 23:58 #8
Kunne det bruges?
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