Avatar billede md_craig Nybegynder
05. marts 2002 - 20:38 Der er 16 kommentarer og
3 løsninger

Counter

Hej Expert nørder

jeg har en side www.frip.dk/lemans hvog jeg vil have lavet en counter til, som tæller antal besøgende, men hvordan ???

til siden benytter jeg

1 stk. ASP dokument (default.asp) (der er godnok flere sider, men der skal tælle ud fra denne side)

1 stk. Database Access 2000 (Info.mdb) med en "tinfo" tabel hvor der er et counter punkt

og så de ting der ikke er nødvendige for dette...

jeg vil gerne have at Info.mdb benyttes så jeg er fri for at opsætte forbindelse til flere databaser (hvis man kan det)

Point ??? ja jeg har ikke sat mere end 60 af... selvfølgelig er et stykke arbejde som dette mere værd... men jeg havde tænkt mig at vi nok kunne finde ud af noget... men minimum vil der være de 60 fot er svært spørgsmål

Hilsen Jens
Avatar billede coltau Juniormester
05. marts 2002 - 20:57 #1
Flot side - men hvor meget mangler du. Du siger du har en database info.mdb med et counter punkt. Hvad er det. ?
Avatar billede rune_c Nybegynder
05. marts 2002 - 21:16 #2
<%
Option Explicit

dim conn, ip, time, rs0, rs1

conn = Server.CreateObject("ADODB.Connection")
conn.open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("din_db"))

ip = Request.ServerVariables("REMOTE_ADDR")
time = date()

rs0 = conn.execute("Select Top 5 * from din_tabel where ip=" & ip & "order by time desc")

if rs0.EOF or rs0.BOF or datediff("d", rs0("time"), time) <> "1" then
    conn.execute("Insert into din_tabel (ip, time) values ('"& ip &"',#"& time &"#)")
end if

rs1 = conn.execute("Select Count(*) as cnt from din_tabel")

Response.Write("Antal besøgende til vidre: " & rs1("cnt"))

%>

det er en counter (håber jeg - skrev den lige hurtigt, helt utestet) hvor den kun lægger 1 til hvis ip'en ikke har været inde på siden samme dag.

I mit eksembel har jeg brugt en tabel med et text-felt der hedder ip og et dato-felt der hedder time
Avatar billede rune_c Nybegynder
05. marts 2002 - 21:21 #3
hvor der skal ikke stå Top 5 men Top 1
Avatar billede rune_c Nybegynder
05. marts 2002 - 21:22 #4
hmm...dum sætning men jeg tror da budskabet kom igennem
Avatar billede md_craig Nybegynder
06. marts 2002 - 10:05 #5
coltau >>> grunden til at jeg har en database er at jeg henter info fra den... (nyheder, events, snart sponsore, og lidt andet)

jeg kan ikke lige vise koderne lige nu da jeg sidde i skolen og skriver dette, men jeg vende tilbage senere.

Rune C >>> jeg vende lige tilbage, for det ser lovende ud, men jeg har en del spørgsmål hertil. men igen vil jeg gerne lige vise hvad det er jeg har nu...

alle >>> undskyld jeg først svare i dag, men af en eller anden mærkelig grung kunne jeg ikke komme ind på eksperten i går efter kl 21 hvorfor ved jeg ikke.... men jeg vil lige give noget mere response så hurgtigt som mugligt...
Avatar billede snuseren.dk Nybegynder
06. marts 2002 - 11:32 #6
Du laver bare en sql, hvor du opdatere din tabel i access, med "tal+1". F.eks.

sql = Conn.Execute("UPDATE FROM Dintabel set count = 'count+1'")

Skulle gerne virke :)
Men skriv lige hvis det ikke virker...

/Snuseren
Avatar billede md_craig Nybegynder
06. marts 2002 - 11:38 #7
Her ses min ASP (kom jo lige i tanke om at jeg bare kunne hente det)
(der er selfølgelig en masse HTML mellem dette, men der er så meget at det har jeg ikke lige skrevet...)

<%
       
' Opret ADO-connection
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("info.mdb")

' Opret RecordSet
Set rs = Server.CreateObject("ADODB.RecordSet")
' Hent første post i tabellen tabelnavn
rs.Open "SELECT * FROM tinfo", myConn
           
%>


<%=RS("Post1")%> ( fx <%=RS("counter")%> )

<%
' Luk det hele igen
rs.Close
myConn.Close
Set rs = Nothing
Set myConn = Nothing
%>

håber det hjælper lidt mere **COLTAU**

rune
Avatar billede md_craig Nybegynder
06. marts 2002 - 11:42 #8
Rune C >>> jeg kan ummidelbar ikke få dette til at virke...

<%
Option Explicit

dim conn, ip, time, rs0, rs1

conn = Server.CreateObject("ADODB.Connection")
conn.open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("info.mdb"))

ip = Request.ServerVariables("REMOTE_ADDR")
time = date()

rs0 = conn.execute("Select Top 1 * from tinfo where ip=" & ip & "order by time desc")

if rs0.EOF or rs0.BOF or datediff("d", rs0("time"), time) <> "1" then
    conn.execute("Insert into tinfo (ip, time) values ('"& ip &"',#"& time &"#)")
end if

rs1 = conn.execute("Select Count(*) as cnt from tinfo")

Response.Write("Antal besøgende til vidre: " & rs1("cnt"))

%>

snuseren.dk >>> vil den i såfald ikke tælle alt... som fx hvis du klikker 30 gange så går den 30 op ??? hvis ja så vil jeg helere bruge Rune C's (hvis jeg kan få det til at virke...) men ellers tak... glad for noget hjælp...

MVH Jens
Avatar billede md_craig Nybegynder
06. marts 2002 - 11:50 #9
snuseren.dk >>> hvor skal dette placeres i forhold til det jeg har i forvejen ????

sql = Conn.Execute("UPDATE FROM Dintabel set count = 'count+1'")
Avatar billede rune_c Nybegynder
06. marts 2002 - 15:21 #10
så nu skulle det virke - testet!!:

<%
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")

s_ip = Request.ServerVariables("REMOTE_ADDR")
s_time = Now()

set rs0 = conn.execute("Select Top 1 * from counter where sip='" & s_ip & "' order by sdate desc")

if (rs0.BOF AND rs0.EOF) then
    conn.execute("INSERT INTO counter (sip, sdate) VALUES ('" & s_ip & "','" & s_time & "')")
elseif (datediff("d", rs0("sdate"), s_time) <> "0") then
    conn.execute("INSERT INTO counter (sip, sdate) 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"))

%>

du skal så bare indsætte dine egne værdier
Avatar billede rune_c Nybegynder
06. marts 2002 - 15:26 #11
md_craig >> snuseren.dks ex vil counter forhøjes med en HVER gang man trykker F5
Avatar billede rune_c Nybegynder
06. marts 2002 - 15:26 #12
md_craig >> snuseren.dks ex vil counteren forhøjes med en HVER gang man trykker F5
Avatar billede md_craig Nybegynder
06. marts 2002 - 17:55 #13
Rune C >>> det var jeg rimelig klar over... men det har du nok læst... men jeg kan umidelbart ikke få din til at virke. men det sagde du jo også at det ikke var sikkert... så.

men skal jeg bare sætte den ind fx over det ASP scrip jeg allerede har ???? eller skal det implementeres deri ???

hvis det skal sættes ind over. så skal forbindelsen til databasen da lukkes inden jeg åbner en ny... ???

Men Jar har testet det uden mit eget... altså bare det du har skrevet mere eller mindre.... og kan ikke få det til at virke...

vil du vide mere om min database ????

INFO.MDB (Access 2000 (udviklet på Access XP))

Tabel: tinfo
poster:

(Autonummerering) primær nøgle
Nyhed 1
Nyhed 2
Nyhed 3
Event 1
Event 2
Event 3
opdateret
Counter

Kunne du udvikle det til den sammen med det info jeg har oplyst om mit ASP... ???

envidere så udtrækker jeg kun den øverste i hver post...

SPØRG ENDELIG HVIS DU VIL VIDE MERE !!!

MVH Jens
Avatar billede rune_c Nybegynder
06. marts 2002 - 19:02 #14
du skal selvfølgelig lave en tabel i din database der kun indeholder counter informationer. Den tabel jeg brugte i mit eksempel så således ud:

id (Autonummerering) primær nøgle
s_ip
s_date

Kald evt. tabelen for counter. Prøv derefter at teste det jeg har skrevet uden at indsætte det i noget af det du har lavet
Avatar billede md_craig Nybegynder
07. marts 2002 - 10:11 #15
Rune C >>>

s_IP: er det tal eller tekst... og er der andre vigtige egenskaber ?
s_date: er det tal, tekst, eller dato. hvis dato hvilket format ??? og er der andre vigtige egenskaber ?

MVH Jens
Avatar billede rune_c Nybegynder
07. marts 2002 - 15:13 #16
s_IP er et tekst felt, dubpletter tillades, max tja en ip kan ikke bestå af mere end 4 * 3 tal + 3 punktummer ergo max 15.

s_date skal være et dato-felt
Avatar billede rune_c Nybegynder
07. marts 2002 - 15:14 #17
du behøver ikke at ændre på formatet
Avatar billede md_craig Nybegynder
18. marts 2002 - 16:54 #18
Kunne ikke få det til at virke,,, der er derfor ikke givet så mange point....
Avatar billede md_craig Nybegynder
18. marts 2002 - 16:55 #19
hmm
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