jeg har lavet et site, hvor jeg på alle mine links kalder en goto.asp side, som henter linket i en database, og samtidig incrementere hits med 1, så jeg kan se, hvor mange der har været på de forskellige sider.
Mit problem er at jeg skal have udvidet det, så jeg kan se, hvor mange der har været inde på de forskellige sider per dag!
Dvs. at på den side jeg har lavet, hvor jeg kan se min statistik, skal der komme en tabel agtig ting op for alle dage som sitet har kørt.
Det skal være lavet dynamisk, så man ikke skal oprette en tabel for hver dag.
Er der nogle der kan hjælpe please!!!! Jeg kan sende filerne så man kan se nærmere!!
Du skal så være opmærksom på at du sikkert får problemer men mange at de store søgemaskiner og at de derfor vil have svært ved at indexisere dig. Di risikere faktisk helt at ryge ud af deres index hvis du ikke laver disse dynamiske links meget forsigtigt og med stor omhu. Jeg ville vælge en helt anden løsning hvis jeg var dig, f.eks at måle på hvor folk kommer fra, istedet for at måle på hvor de går hen
det er hvis du vil køre det fra din egen server....altså install det...
du opretter dig som bruger, og genere den kode som du skal bruge koden er forskellige hvis du vil have en transperant counter, som jeg har valgt - også har jeg i stedet lavet en iframe hvor staten vises på en speciel side Du kan også vælge at få et ikon der viser alt mulig som
Der er flere muligheder. Du kan også bruge Chart.dk der - så vidt jeg ved - er den største af sin slags herhjemme. Så får du også din side smidt ind i en hitliste som sammenligner med andre sites af samme type, og det kan så i sig selv generere lidt trafik til din hjemmeside.
Jeg ville oprette en ekatra tabel i din DB - tabellen skal indeholde 3 felter: LinkID (ID på linket i linktabellen, dDate (Datofelt) og nCount (Tæller).
ASP koden kunne se sådan ud:
<%@ Language=VBScript %> <!--#include file="adovbs.inc" --> <% Sub AddCounter(ID) Dim cnxn, rs, sql
' Åbner connection Set cnxn = Server.CreateObject("ADODB.Connection") With cnxn .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" & Server.MapPath("/db1.mdb") & ";" .Open End With
' Tæller op eller opretter ny tæller for dagen sql = "SELECT LinkFID FROM tblCounter WHERE dDate = Date() AND LinkFID = 1;" Set rs = cnxn.Execute sql, , adCmdText If Not (rs.BOF Or rs.EOF) Then ' Tælleren eksisterer for dagen, så vi tæller op sql = "UPDATE tblCounter SET nCount = nCount + 1 WHERE dDate = Date() AND LinkFID = " & ID & ";" cnxn.Execute sql, , adCmdText Else 'Tælleren eksisterer ikke, så vi opretter en ny sql = "INSERT INTO tblCounter (LinkFID, dDate, nCount) VALUES (" & ID & ", Date(), 1)" cnxn.Execute sql, , adCmdText End If rs.Close Set rs = Nothing
cnxn.Close Set cnxn = Nothing
Function
' Variable -------------------------------------------------------------------------------------- Dim cnxn, rs, sql
' Program ---------------------------------------------------------------------------------------
For det første - der er et par syntaks fejl i koden, jeg har rettet dem til i koden du finder nedenfor.
Ellers har jeg følgende kommentarer - Det interessante foregår i den Sub som jeg har kaldt AddCounter. Sub'en bliver kaldt længere ned i koden, hvor der står AddCounter Request("LinkID"), men det kan selvfølgelig være anderledes i dit tilfælde. Hvis du ikke har et unikt ID på hvert link, foreslår jeg du laver det i databasen, lav det med Access's AutoNumber felt.
Jeg åbner først en forbindelse til database, men det kan du sandsynligvis se bort fra, du har sikkert oprettet forbindelsen et andet sted i filen.
Derefter sker der to ting - først laver jeg et opslag i databasen, der skal vise om der allerede er en tæller for det pågældende link for datoen.
"SELECT LinkFID FROM tblCounter WHERE dDate = Date() AND LinkFID = " & ID & ";"
Hvis denne forespørgsel returnerer et recordset, er det fordi der er en tæller for linket for dags dato, ellers er der ikke. Det tester jeg for i linjen:
"If Not (rs.BOF Or rs.EOF) Then"
Hvis det er sandt skal vi altså tælle op, det foregår med SQL sætningen:
"UPDATE tblCounter SET nCount = nCount + 1 WHERE dDate = Date() AND LinkFID = " & ID & ";"
Ellers skal der oprettes en tæller for datoen - det foregår med SQL - sætningen:
"INSERT INTO tblCounter (LinkFID, dDate, nCount) VALUES (" & ID & ", Date(), 1)"
I alle SQL sætningerne indsættes det pågældende links id, hvor der står
<%@ Language=VBScript %> <!--#include file="adovbs.inc" --> <% Sub AddCounter(ID) Dim cnxn, rs, sql
' Åbner connection Set cnxn = Server.CreateObject("ADODB.Connection") With cnxn .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" & Server.MapPath("/db1.mdb") & ";" .Open End With
' Tæller op eller opretter ny tæller for dagen sql = "SELECT LinkFID FROM tblCounter WHERE dDate = Date() AND LinkFID = " & ID & ";" Set rs = cnxn.Execute sql, , adCmdText If Not (rs.BOF Or rs.EOF) Then ' Tælleren eksisterer for dagen, så vi tæller op sql = "UPDATE tblCounter SET nCount = nCount + 1 WHERE dDate = Date() AND LinkFID = " & ID & ";" cnxn.Execute sql, , adCmdText Else 'Tælleren eksisterer ikke, så vi opretter en ny sql = "INSERT INTO tblCounter (LinkFID, dDate, nCount) VALUES (" & ID & ", Date(), 1)" cnxn.Execute sql, , adCmdText End If rs.Close Set rs = Nothing
cnxn.Close Set cnxn = Nothing
End Sub ' Variable --------------------------------------------------- Dim cnxn, rs, sql
' Program -----------------------------------------------------
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.