På denna kod som inkluderas på varje sida på min webbsida.
Går det att förbättra den och göra den lite snabbare kanske.
Banner.asp - som inkluderas på varje sida
<!--#Include Virtual="/admin/banner_con.asp"-->
<%Set Conn = Server.CreateObject("Adodb.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; dbq=" & db
Set RecSet=Conn.Execute("Select * From banner Order By rotator")%>
<%If RecSet.EOF Then%>
<font size="2" face="Tahoma">Inga banners inlagda!</font>
<%Else
x = 0
Do Until RecSet.EOF Or x=Antal%>
<a href="/admin/banner_klick.asp?go=ut&id=<%=RecSet("id")%>" target="_blank" onmouseover="self.status='<%=RecSet("link")%>';return true" onmouseout="self.status=' ';return true"> <img src="<%=RecSet("banner")%>" border="0" width="88" height="31"></a>
<%Conn.Execute("Update banner Set visad=visad+1 Where id = " & RecSet("id"))
Conn.Execute("Update banner Set rotator=rotator+1 Where id = " & RecSet("id"))
x=x+1
RecSet.MoveNext
Loop
End If%>
banner_con.asp
<%
'#################################################
'---------------------Sökväg till databas från bannersidan!-----------
'#################################################
db = Server.MapPath("/database/banner.mdb")
'#################################################
'-----------Antal banner på rad-----------------------------------------
'#################################################
Antal = 4
'#################################################
'-----------Adminnamn och lösen --------------------------------------
'#################################################
Admin1 = "admin"
Admin2 = "00000000"
%>
Banner_klick.asp
<!--#Include Virtual="/admin/banner_con.asp"-->
<%Set Conn = Server.CreateObject("Adodb.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; dbq=" & db
Set RecSet=Conn.Execute("Select * From banner Where id=" & request.querystring("id"))
Conn.Execute("Update banner Set klick=klick+1 Where id=" & request.querystring("id"))
Response.Redirect RecSet("link")%>
Snabbt genomgånget på hur jag hade försökt strukturera upp det: :)
..med reservation för vissa fel, snabbkodat. ;)
Banner.asp
[RED]<%
Dim Conn, RecSet, arrRecSet
'// GetRows
Set Conn = Server.CreateObject("Adodb.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& db
Set RecSet = Conn.Execute("SELECT id, link, banner FROM banner ORDER BY rotator")
If NOT RecSet.EOF Then arrRecSet = RecSet.GetRows()
RecSet.Close : Set RecSet = Nothing
'// Print
If IsArray(arrRecSet) Then
For i = 0 To UBound(arrRecSet, 2)
Dim intID, strLink, strBanner
intID = arrRecSet(0,i)
strLink = arrRecSet(1,i)
strBanner = arrRecSet(2,i)
Response.Write ""&_
"<a href=""/admin/banner_klick.asp?go=ut&id="& intID &""" target=""_blank"" onmouseover=""self.status='"& strLink &"';return true;"" onmouseout=""self.status=' ';return true;"">"&_
"<img src="""& strBanner &""" border=""0"" width=""88"" height=""31""></a>"
Conn.Execute("UPDATE banner SET visad=visad+1, rotator=rotator+1 WHERE id = "& intID),,128
Next
Erase arrRecSet
Else
Response.Write "<font size=""2"" face=""Tahoma"">Inga banners inlagda!</font>"
End If
[b]Conn.Close : Set Conn = Nothing[/b]
%>[/RED]
Banner_klick.asp
[RED]<%
Dim Conn, arrRecSet
Set Conn = Server.CreateObject("Adodb.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& db
arrRecSet = Conn.Execute("SELECT link FROM banner WHERE id="& trim(Request.Querystring("id"))).GetRows()
Conn.Execute("UPDATE banner SET klick=klick+1 WHERE id="& trim(Request.Querystring("id"))),,128
Conn.Close : Set Conn = Nothing
Response.Redirect arrRecSet(0,0)
%>[/RED]
/r: ..flyttade Conn.Close : Set Conn = Nothing till ett mer korrekt ställe. Se fet stil.
Kanske kan vara en ide att använda en annan benämning ´på din querystring om det där är filer som du ska inkludera lite här och där. Risken att du redan använder dig av "id" känns ganska stor.
Kanske kan vara en ide att använda en annan benämning ´på din querystring om det där är filer som du ska inkludera lite här och där. Risken att du redan använder dig av "id" känns ganska stor.
Tanken är god. :)
Tror dock inte han behöver ändra det i just detta fall eftersom Banner_klick.asp öppnas
i ett nytt fönster och endast sköter klickräkningen och vidareskickningen.. Har jag fel så rätta mig. ;)
Kanske kan vara en ide att använda en annan benämning ´på din querystring om det där är filer som du ska inkludera lite här och där. Risken att du redan använder dig av "id" känns ganska stor.
Tanken är god. :)
Tror dock inte han behöver ändra det i just detta fall eftersom Banner_klick.asp öppnas
i ett nytt fönster och endast sköter klickräkningen och vidareskickningen.. Har jag fel så rätta mig. ;)
Du har rätt att den endast öppnas i ett nytt fönster och räknar klicken & vidareskickningen