24. oktober 2003 - 19:23Der er
9 kommentarer og 1 løsning
asp counter der tæller unikke besøgende
Hej Eksperter
Nogen der ligger inde med et færdigt script, der tæller unikke besøgende, og lager dataerne i en accessdatabase som kunne tænke sig at vise det til mig? :)
Jeg er først lige startet med min første hjemmeside, men har dog fulgt nøje med når min mand arbejder ved pc'en. Han kan dog ikke hjælpe mig her, kan I?
Skal lige siges at jeg har støvet Ekspertens svar igennem, og det tætteste jeg kunne komme det jeg søgte var http://www.eksperten.dk/spm/181386 hvor jeg har gjort ALT som der står i rune_c' svar. Men jeg løber på en fejlmelding der hedder : Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.
Går udfra at det er denne linie ...... set rs0 = conn.execute("Select Top 1 * from counter where sip='" & s_ip & "' ......... da hele scriptet ser således ud
<% Option Explicit
dim conn, s_ip, s_time, rs0, rs1
set conn = Server.CreateObject("ADODB.Connection") conn.open "Driver={Microsoft Access Driver (*.mdb)}; Dbq="&Server.MapPath("db.mdb")
Det ser ud som om du har en/to fejl i din SQL sætning: set rs0 = conn.execute("Select Top 1 * from counter where sip='" & s_ip & "' order by sdate desc")
Først så er counter reserveret ord i SQL, så der skal [] omkring [counter]. Andet hvis sip er defineret som tal skal der ikke ' omkring i SQL sætningen.
Så prøv med denne:
set rs0 = conn.execute("Select Top 1 * from [counter] where sip=" & s_ip & " order by sdate desc")
Det med counter og ' gælder også i de to andre SQL sætninger du har.
Prøv at udksrive din SQL sætning i stedet for at udføre den og tjek at der er en værdi efter sip .. where sip='xxx' Fejlen kan også skyldes at et kolonnenavn er stavet forkert så tjek kolonnenavne om de er stavet på samme måde i tabellen.
set rs0 = conn.execute("Select Top 1 * from [counter] where s_ip='" & s_ip & "' order by s_date desc")
if (rs0.BOF AND rs0.EOF) then conn.execute("INSERT INTO [counter] (s_ip, s_date) VALUES ('" & s_ip & "','" & s_time & "')") elseif (datediff("d", rs0("s_date"), s_time) <> "0") then conn.execute("INSERT INTO [counter] (s_ip, s_date) VALUES ('" & s_ip & "','" & s_time & "')") end if
rs1 = conn.execute("Select Count(*) as cnt from [counter]")
Response.Write("Antal besøgende til vidre: " & rs1("cnt"))
%>
Tælleren ligger her i en database navngivet 'db.mdb', hvilken indeholder en tabel navngivet 'counter', som indeholder id ( Autonummerering og primær nøgle ) s_ip (tekst) s_date (Dato og klokkeslæt)
Synes godt om
Ny brugerNybegynder
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.