Avatar billede Slettet bruger
03. maj 2006 - 12:09 Der er 26 kommentarer og
1 løsning

Database hjælp - trykket links tæller

Jeg har nogle links i et database som bliver vist til brugerne på min side.
Jeg vil meget gerne have lavet en tæller så jeg kan se hvor mange gange der er blevet trykket på disse links.

Nogle der kan hjælpe mig med dette?
Avatar billede -mundi- Nybegynder
03. maj 2006 - 12:13 #1
tilføj et talfelt med f.eks navnet "clicks" til links tabellen i din database.
opret en redir.asp
udskift det link du normalt skriver ud med href="redir.asp?id=<%=rs("linkid")%>"
i redir opdatere clicks med 1 og redirect til det link du har gemt i linkdatabasen med id = clng(request.querystring("id"))
Avatar billede Slettet bruger
03. maj 2006 - 12:26 #2
Okay.. lyder fornuftigt... Tak...
Håber du har tid til at give lidt mere assistance.. Er ikke super inden for ASP, men kæmper med at få det lært. :-)

Har tilføjet et "klik" felt i databasen.
Har oprettet en redir.asp
Har ændret min orginale link til "redir.asp?id=<%=rs("linkid")%>"

"Linkid", er det fordi jeg skal læse hvad mit link har af ID i databasen som jeg senere vil bruge i redir.asp for at kunne bruge det ritige link ?

Og er det så bare at læse "klik" fra databasen og tilføje en til værdi og smide den tilbage igen og derefter redirect  med den kommando du skrev, men skal det ikke også være "linkid" her og ikke kun "id" ?
Avatar billede -mundi- Nybegynder
03. maj 2006 - 12:30 #3
("Linkid", er det fordi jeg skal læse hvad mit link har af ID i databasen som jeg senere vil bruge i redir.asp for at kunne bruge det ritige link ?) Ja

hvis du skriver navnet på den tabel du gemmer dine links i, samt navnet på den kolonne der indeholder linket, kan jeg godt bikse redir.asp sammen til dig
Avatar billede -mundi- Nybegynder
03. maj 2006 - 12:30 #4
og navnet på din id kolonne, hvis den hedder noget andet end "id"
Avatar billede Slettet bruger
03. maj 2006 - 12:39 #5
jotak, ville være fedt.. :-)

tabellen hedder "sjove" og den tabel hvor linket er i hedder "filnavn", ID hedder "Id"
Avatar billede Slettet bruger
03. maj 2006 - 12:41 #6
På min side hvor jeg normalt udskriver linket er det følgende linje:

<p><a href="http://www.hyggestedet.dk/movieplayer.asp?movie=sjove/<%=rs("filnavn")%>"><u>Tryk her for at se filmklippet</span></u></a></p>

Ved ikke om det laver lort når der er noget "rs" linke med i linket ?
Avatar billede -mundi- Nybegynder
03. maj 2006 - 12:48 #7
ahh, så er det ikke en god løsning med en redir.asp side.

<a href="http://www.hyggestedet.dk/movieplayer.asp?movie=sjove/<%=rs("filnavn")%>"> ændres til :
<a href="http://www.hyggestedet.dk/movieplayer.asp?movie=sjove/<%=rs("filnavn")%>&amp;id=<%=rs("id")%>">

i movieplayer.asp indsætter du følgende:
klikid = clng(request.querystring("id"))
Sql ="update sjove set klik = klik+1 where id=" & klikid
hvis du allerede har en Database forbindelse åben kalder du conn.execute(Sql) ellers laver du bare en ny connection
Avatar billede Slettet bruger
03. maj 2006 - 12:59 #8
Den kommer ud med dette når jeg trykker på et link?
http://www.hyggestedet.dk/<a%20href=

Er det det rigtige link du har skrevet her, det der &amp skal det også være der?
Avatar billede -mundi- Nybegynder
03. maj 2006 - 13:02 #9
Det ser ud som om du ikke har udskiftet hele linket
Avatar billede Slettet bruger
03. maj 2006 - 13:22 #10
Jeg skriver dette i movieplayer:

    <%
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM styrt ORDER BY tid ASC"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("sti til database")
rs.Open strSQL, strDSN, 1

klikid = clng(request.querystring("id"))
Sql ="update sjove set klik = klik+1 where id=" & klikid

rs.Close
Set rs = Nothing
%>

Men den kommer med dette:


Provider error '80004005'

Unspecified error

/movieplayer.asp, line 143
Avatar billede Slettet bruger
03. maj 2006 - 13:22 #11
Og rs.Open ... osv.. er linje 143
Avatar billede -mundi- Nybegynder
03. maj 2006 - 13:26 #12
"sti til database" skal slf være den rigtige sti til din database.
rs.open skal have en connection som parameter istedet for strDSN
Avatar billede Slettet bruger
03. maj 2006 - 15:16 #13
Den kommer stadig med en fejl:

ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/movieplayer.asp, line 143



Har følgende:

        <%
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM styrt ORDER BY tid ASC"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("movies.mdb")
rs.Open strSQL, connection, 1

klikid = clng(request.querystring("id"))

Sql ="update sjove set klik = klik+1 where id=" & klikid

rs.Close
Set rs = Nothing
%>

Og stien er det rigtige... ?
Avatar billede -mundi- Nybegynder
03. maj 2006 - 15:26 #14
nu ved jeg ikke hva der ellers ligger i dit script, men den del der har med kliktælleren kan laves således:
klikId = clng(request.querystring("id"))
set klikConn = server.createObject("adodb.connection")
klikConn.open "Provider=Microsoft.Jet.OleDb.4.0;Data Source="&Server.MapPath("movies.mdb")
klikConn.execute "update sjove set klik = klik+1 where id=" & klikid
klikConn.close
set klikConn=nothing

så burde det ikke have nogen indflydelse på resten af din kode
Avatar billede Slettet bruger
03. maj 2006 - 15:34 #15
Tror måske det er noget af mit andet kode der laver lort.

Når jeg skriver denne adresse:
http://www.hyggestedet.dk/moviestyrt.asp

Så kommer den med følgende (Det har ellers virker, men må have ændret noget)


Provider error '80004005'

Unspecified error

/moviestyrt.asp, line 197

Det virker første gang man trykker på den (liste over filmklip) men når jeg så trykker f.eks. F5 så kommer den med fejlen. Er det fordi den ikke får lukket database forbindelse evt. ?
Avatar billede Slettet bruger
03. maj 2006 - 15:39 #16
Når jeg først åbner listen og trykker et filmklip virker det første gang, trykker jeg så på listen igen kommer den med ovenstående fejl.

Linje 197 er
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("....movies.mdb")
Avatar billede Slettet bruger
03. maj 2006 - 15:40 #17
PS. Sorry der er så meget bøvl og tak fordi du gider hjælpe.
Men når man først er kommet i gang vil man jo bare gerne have det til at virke. :-)
Avatar billede -mundi- Nybegynder
03. maj 2006 - 15:46 #18
Prøv at udskifte strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("....movies.mdb")
med
strDSN = "Provider=Microsoft.Jet.OleDb.4.0;Data Source="&Server.MapPath("movies.mdb")


Derudover er ....movies.mdb ikke et gyldigt filnavn, så det kan evt være det der er fejlen
Avatar billede Slettet bruger
03. maj 2006 - 15:47 #19
...movies var bare for at skrive stien... den er jo anderledes med gider ikke lige skrive fuld stinavn her.. ;-)

Prøver lige...
Avatar billede -mundi- Nybegynder
03. maj 2006 - 15:53 #20
ah ok, det var bare for at være sikker :-)
Avatar billede Slettet bruger
03. maj 2006 - 15:55 #21
:-)

Mærkeligt... Det virker stadig ikke...  Hvad dælen kan der være galt...

Det virker første gang jeg trykker, men anden gang kommer fejlen hvis jeg opdaterer eller vælger den igen (asp filen som udskriver listen). Det må jo næsten være noget med databasen at gøre der ikke er lukket eller noget???
Avatar billede -mundi- Nybegynder
03. maj 2006 - 15:57 #22
Prøv at skifte tilbage til den oprindelige strDSN og skift
klikConn.open "Provider=Microsoft.Jet.OleDb.4.0;Data Source="&Server.MapPath("movies.mdb")
med 
klikConn.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("movies.mdb")
Avatar billede Slettet bruger
03. maj 2006 - 16:00 #23
Så ser det ud til at virke.... Tester det lige...
Avatar billede Slettet bruger
03. maj 2006 - 16:02 #24
Efter jeg har fået det rettet lidt og brugt din connection linje virker det!!!

Det eneste problem er at der ikke kommer nogle "klik" i databasen. (Det har ikke virket endnu).... Men ser lige om jeg har lavet noget lort nogle steder..
Avatar billede Slettet bruger
03. maj 2006 - 16:05 #25
Det gode ved problemerne her er at jeg lære en masse. :-)

Men har brugt denne linje i "moviestyrt.asp" som udskriver listen (som du skrev):

<p><a href="http://www.hyggestedet.dk/movieplayer.asp?movie=styrt/<%=rs("filnavn")%>&amp;id=<%=rs("id")%>">

Og i movieplayer.asp har jeg brugt følgende:
        <%
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM styrt ORDER BY tid ASC"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/db/movies.mdb")
rs.Open strSQL, connection,1

klikid = clng(request.querystring("id"))
Sql ="update sjove set klik = klik+1 where id=" & klikid

rs.Close
Set rs = Nothing
%>
Avatar billede Slettet bruger
03. maj 2006 - 16:13 #26
har lige lavet et direkte eksempel med database og det hele så det står totalt som det er nu så der ikke er ting der kan forvirer.
Avatar billede Slettet bruger
04. maj 2006 - 11:20 #27
Så virker det sgu!!! Fik rettet lidt småting rundt omkring.. hehe.. puha et arbejde for så lidt.. men sådan er det jo når det driller... Men jeg siger mange tak for hjælpen.. :-)
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