webForumDet fria alternativet

Klrurig sats med strängfunktioner...

7 svar · 497 visningar · startad av Vide

VideMedlem sedan dec. 19998 577 inlägg
#1

OK, här kommer någonting som jag har fastnat i... i tabellen referer finns det sökvägar typ: http://cgi.webforum.nu/wf/Forum11/HTML/000758.html

Vad jag vill göra är att skriva ut alla domäner och räkna dessa... så att dom listas:
http://henslow.4sale.se/ - 67 http://spel.webforum.nu/ - 21 http://www.stars.com/ - 35 http://www.anima.nu/ - 10

Mitt skript nedan gör den inte Distinct... dvs den skriver ut http://henslow.4sale.se/ flera gånger... nån som har några förslag?

SQL = "Select Distinct referer from userstatistics where referer <> '' ORDER BY referer"
Set RS = databas.execute(SQL)

Set rstmp = Server.Createobject("ADODB.Recordset")
rstmp.Fields.Append "referer", adVariant, 50
rstmp.Fields.Append "cnt", adInteger, 4
rstmp.open

Do until RS.EOF

str = RS("referer")
ht = "http://"
lt = "/"

str = Mid(str, 1, Instr(Instr(str,ht)+7,str,lt,1))

SQL = "Select Count(referer) AS cnt From userstatistics where referer LIKE '" & str & "%'"
Set rs_t = databas.execute(SQL)
var_RS_t = RS_t("cnt")

	rstmp.Addnew
		rstmp("referer") = str
		rstmp("cnt") = var_RS_t
	rstmp.update

RS.MoveNext
Loop

rstmp.sort = "cnt desc"
rstmp.movefirst

Do until rstmp.EOF

	Response.write rstmp("referer") & " - " & rstmp("cnt") & "<br>"

rstmp.MoveNext
Loop

rstmp.close
Set rstmp = nothing

------------------
Vides motto: Ju fler saker man tycker är roligt, desto roligare har man
www.webeye.nu

[Redigerat av Vide den 11 jul 2000]

@ndersMedlem sedan juni 200032 969 inlägg
#2

jag föreslår att du lägger in typ refererdomain i tabellen, bör ju vara ganska enkelt att plocka fram med asp eller php innan du gör inserten.

select count(distinct refererdomain), refererdomain from userstatistics group by refererdomain order by refererdomain

------------------
@nders

VideMedlem sedan dec. 19998 577 inlägg
#3

Visst det skulle jag ju kunna göra... men nu är det ju så att jag redan har hundratals poster, och jag har ingen lust att gå in och ändra dom...

Jag skapade koden ovan för att gå runt det... men tack ändå... det är väl sånt man skall tänka på när man strukturerar upp databasen... :)

------------------
Vides motto: Ju fler saker man tycker är roligt, desto roligare har man
www.webeye.nu

VideMedlem sedan dec. 19998 577 inlägg
#4

Jag löste det genom att lägga in variabeln som den kommer ihop med redan använda variabler (referer), och sedan kolla detta med i enkel If-sats:

If Instr(strtmp, str) = 0 then

rstmp.Addnew
rstmp("referer") = str
rstmp("cnt") = var_RS_t
rstmp.update	

End If

strtmp = strtmp & str

Men har ni förslag på förbättringar så är ni bara välkommna... :)

------------------
Vides motto: Ju fler saker man tycker är roligt, desto roligare har man
www.webeye.nu

@ndersMedlem sedan juni 200032 969 inlägg
#5

vide är alltså moderator i sql-forumet och använder .addnew istället för insert? är inte det lite som att svära i kyrkan? :)

------------------
@nders

VideMedlem sedan dec. 19998 577 inlägg
#6

Kollar du lite mer noga så ser du nog att jag inte kopplar recordsettet till en databas, utan skapar ett disconnected recordset...

Det vore lite dumt av mig att skapa en temporär tabell i databasen varje gång man kolla sidan... :)

------------------
Vides motto: Ju fler saker man tycker är roligt, desto roligare har man
www.webeye.nu

@ndersMedlem sedan juni 200032 969 inlägg
#7

okay! där fick jag.

orkade tydligen inte läsa hela koden i ditt tidigare inlägg...

du är härmed förlåten, under förutsättning att du inte använder .addnew på något annat sätt. ;)

------------------
@nders

VideMedlem sedan dec. 19998 577 inlägg
#8

Jag lovar på min och wFs heder... :e

Vi borde starta en kampanj mot .addnew-otyg... :)

------------------
Vides motto: Ju fler saker man tycker är roligt, desto roligare har man
www.webeye.nu

144 ms totalt · 3 externa anrop · v20260731065814-full.cf67ef55
129 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)