Avatar billede dtm Nybegynder
07. februar 2002 - 11:36 Der er 15 kommentarer og
1 løsning

counter i database

øhhh
Jeg har et asp-dokument med en masse links på, som er links til andre sider på nettet.....Kan det så godt lade sig at lave en tæller, sådan at jeg kan se hvilke der bliver trykket på flest gange.....??
Altså via en kolonne i min database...
http://www.dlaursen.dk/bilfreaks

DTM
Avatar billede larsen Nybegynder
07. februar 2002 - 11:40 #1
Du kan lade linksne kalde en asp-side med et ID-nr.
Den kaldte asp-side vil så lægge een til ID'et i databasen og derefter redirecte dig til den nye side.
Avatar billede dtm Nybegynder
07. februar 2002 - 11:44 #2
okay, hvordan gør jeg lige det??

DTM
Avatar billede slash Nybegynder
07. februar 2002 - 11:51 #3
et forslag kunne være:
lav en tabel som du lægger alle dine links i -> tbl_links(id, href, name). Deri putter du de links du har på din side og så selecter du dem fra tabellen når de vises på aspsiden -! Dernæst laver du en tabel mere tbl_links_klik (id, links_id). Hver gang der klikkes på et link laver du en insert som smider id'en fra linket ned i tbl_links_klik. Dernæst kan du lave et script som giver dig statistik over antal ganeg der er klikket på link X!

Bare et løst opkast
Avatar billede larsen Nybegynder
07. februar 2002 - 11:58 #4
Main aspfil

<A HREF="Taeller.asp?ID=12">Gå til yahoo.dk</A>


Taeller.asp

<%
' Lad os sige du har en database med navnet DB.mdb
' Og en tabel (Tbl_Hits) med følgende felter :
' ID,Hits,Websted
' ID = IDnummeret
' Hits = Antal hits
' Websted = Webadressen til det nye sted

IDnr=Request.QueryString("ID")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Sti/til/DB.mdb")
SQLStr="SELECT * FROM Tbl_Hits WHERE ID=" & IDnr
Set Rs=Conn.Execute(SQLStr)
If Rs.BOF OR Rs.EOF then
' Hvis den ikke finde skal dette udføres
Else
' Ellers dette
    SQLStr="UPDATE Tbl_Hits SET "
    SQLStr=SQLStr & "Hits=" & Rs("Hits")+1
    SQLStr=SQLStr & " WHERE ID=" & IDnr
End If
Set Rs=Conn.Execute(SQLStr)
Response.Redirect(Rs("Websted"))
Conn.Close
%>
Avatar billede dtm Nybegynder
07. februar 2002 - 13:07 #5
Er vi enige om at det er kun nødvendig med en tabel i databasen??
Avatar billede larsen Nybegynder
07. februar 2002 - 13:11 #6
Jeps.
1 tabel og 3 felter i den
Avatar billede 12tri Nybegynder
07. februar 2002 - 13:14 #7
www.html.dk -> asp
Avatar billede dtm Nybegynder
07. februar 2002 - 13:41 #8
Jeg får denne fejl??

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/bilfreaks/hit.asp, line 22
Avatar billede coltau Juniormester
07. februar 2002 - 14:32 #9
Skal se således ud.

SQLStr="UPDATE Tbl_Hits SET "
    SQLStr=SQLStr & "Hits=Hits+1"
    SQLStr=SQLStr & " WHERE ID=" & IDnr
Avatar billede dtm Nybegynder
07. februar 2002 - 14:42 #10
Efter jeg ændrede det til det "coltau" skrev. Får jeg så denne meddelse:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/bilfreaks/hit.asp, line 23
Avatar billede larsen Nybegynder
07. februar 2002 - 16:37 #11
Hvad står der i din linie 23 ??
Avatar billede dtm Nybegynder
07. februar 2002 - 23:13 #12
<%
' Lad os sige du har en database med navnet biler.mdb
' Og en tabel (websteder) med følgende felter :
' ID,counter,url
' ID = IDnummeret
' counter = Antal hits
' url = Webadressen til det nye sted

IDnr=Request.QueryString("ID")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("biler.mdb")
SQLStr="SELECT * FROM websteder WHERE ID=" & IDnr
Set Rs=Conn.Execute(SQLStr)
If Rs.BOF OR Rs.EOF then
' Hvis den ikke finde skal dette udføres
Else
' Ellers dette
    SQLStr="UPDATE websteder SET "
    SQLStr=SQLStr & " counter = counter+1 "
    SQLStr=SQLStr & " WHERE ID=" & IDnr
End If
Set Rs=Conn.Execute(SQLStr)
Response.Redirect(Rs("url"))          (DETTE ER LINIE 23)
Conn.Close
%>
Avatar billede dtm Nybegynder
08. februar 2002 - 08:36 #13
http://www.dlaursen.dk/bilfreaks

Den ligger godt nok en til i min counter for hvert links, men den vil ikke redirecte til den side der svarer til selve linket.....
Avatar billede larsen Nybegynder
08. februar 2002 - 17:03 #14
Prøv at ændre følgende :

Else
' Ellers dette
    NytSted=Rs("url")
    SQLStr="UPDATE websteder SET "
    SQLStr=SQLStr & " counter = counter+1 "
    SQLStr=SQLStr & " WHERE ID=" & IDnr
End If
Set Rs=Conn.Execute(SQLStr)
Response.Redirect(NytSted)
Avatar billede dtm Nybegynder
11. februar 2002 - 08:14 #15
Jeg har fået det i orden nu....

Men jeg kan jo ikke acceptere dit svar Larsen, da du kun har kommenteret...
DTM
Avatar billede larsen Nybegynder
11. februar 2002 - 08:31 #16
Ok, Det var godt du fik det til at virke :-)
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