Avatar billede blaatand Nybegynder
20. september 2003 - 16:21 Der er 10 kommentarer og
1 løsning

Hjælp til Arrys i Gruppe!

Har fået lidt hjælp til at få dette kode til at lave en top 10 over hvilken download der har fået flest kliks:

strSQL = "SELECT M_DL_ID, count(*) AS Samme FROM T_DOWNLOADS_STATS GROUP BY M_DL_ID"
set rs = Conn.Execute(strSQL)


do while not rs.eof
strAMOUNT = rs("Samme")
strAMOUNTID = rs("M_DL_ID")
Response.Write ""&strAMOUNT&""&strAMOUNTID&"<br>"
rs.MoveNext
loop


Skal så have den til at finde ud af hvilken af "grupperne" der har fået flest kliks, og så have skrevet den ud i en top 10 derefter. Fik at vide at dette skulle gøres via Arrays.
Avatar billede eagleeye Praktikant
20. september 2003 - 16:25 #1
Hvorfor ikke bare lave det i SQL sætningen:

strSQL = "SELECT TOP 10 M_DL_ID, count(*) AS Samme FROM T_DOWNLOADS_STATS GROUP BY M_DL_ID ORDER BY count(*) DESC"
Avatar billede blaatand Nybegynder
20. september 2003 - 16:54 #2
Oi, det kunne vi ikke få den til, men kan også se koden er lidt anderledes!

Hvis jeg så vil hente dataen ud med det ID der er flest af fra en anden tabel, hvad gør jeg så?
Avatar billede eagleeye Praktikant
20. september 2003 - 16:56 #3
Hvis du har to tabeller eller hvordan tænker du?
Avatar billede blaatand Nybegynder
20. september 2003 - 16:58 #4
ja, det er 2 tabeller. en med al infoen omkring selve downloadsne, T_DOWNLOADS, og så den med klikregistreringen T_DOWNLOADS_STATS...

T_DOWNLOADS_STATS registrerer hver gang der er en der downloader fra siden, så gemmer den id på downloaden, så jeg kan bruge den til ovennævnte kode, og få en top 10 :)
Avatar billede eagleeye Praktikant
20. september 2003 - 17:02 #5
Du kan lave en INNER JOIN hvor de to tabeller har en kolonne som er ens:

strSQL = "SELECT TOP 10 M_DL_ID, count(*) AS Samme, T_DOWNLOADS.navn FROM T_DOWNLOADS_STATS INNER JOIN T_DOWNLOADS ON T_DOWNLOADS_STATS.M_DL_ID = T_DOWNLOADS.ID GROUP BY T_DOWNLOADS_STATS.M_DL_ID, T_DOWNLOADS.navn ORDER BY count(*) DESC"
Avatar billede blaatand Nybegynder
20. september 2003 - 17:06 #6
navn er det kolonnens navn i tabellen som jeg skal skifte ud?
Avatar billede eagleeye Praktikant
20. september 2003 - 17:11 #7
Ja navn er en kolonne som du får med ud, du kan rette så det paser med dit.
Avatar billede eagleeye Praktikant
20. september 2003 - 17:13 #8
de kolonner du får ud skal både stå i select og Group by..:

strSQL = "SELECT TOP 10 M_DL_ID, count(*) AS Samme, T_DOWNLOADS.navn, T_DOWNLOADS.link FROM T_DOWNLOADS_STATS INNER JOIN T_DOWNLOADS ON T_DOWNLOADS_STATS.M_DL_ID = T_DOWNLOADS.ID GROUP BY T_DOWNLOADS_STATS.M_DL_ID, T_DOWNLOADS.navn, T_DOWNLOADS.link ORDER BY count(*) DESC"
Avatar billede blaatand Nybegynder
20. september 2003 - 17:15 #9
ok! :)

Det ser jo helt godt ud, det er lige det jeg mangler! :)

Takker for hjælpen!
Avatar billede blaatand Nybegynder
20. september 2003 - 17:15 #10
Ja, M_TITEL heder den... :)
Avatar billede blaatand Nybegynder
21. september 2003 - 03:10 #11
Hmm, er løbet ind i et problem... den stopper ikke ved top 10, den har nu 11 posts på top 10 listen o_O

Noget du sådan lige ved hvorfor?

Koden:



strSQL = "SELECT TOP 10 M_DL_ID, count(*) AS Samme, T_DOWNLOADS.M_TITEL FROM T_DOWNLOADS_STATS INNER JOIN T_DOWNLOADS ON T_DOWNLOADS_STATS.M_DL_ID = T_DOWNLOADS.ID GROUP BY T_DOWNLOADS_STATS.M_DL_ID, T_DOWNLOADS.M_TITEL ORDER BY count(*) DESC"
set rs = Conn.Execute(strSQL)



do while not rs.eof
strAMOUNT = rs("Samme")
strAMOUNTID = rs("M_DL_ID")
strTITEL = rs("M_TITEL")
Response.Write "<a href =""downloads.asp?ven=1&id="&strAMOUNTID&""" class=""maintekst"">"&strTITEL&"</a><br>"
rs.MoveNext
loop
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