|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
This page displays a toplist and it has 50 links per page. The problem is when you go to the next page to see the next 50 links, the count starts out at "11" instead of "51". Can someone please glance at this code and tell me where the problem could be? Also I have a problem where it list a banner that is submitted when someone signs up. If they leave the field blank, then a dead image link shows up on the page. I would really appreciate anybodys help on this. This is the script to show the links and the include file is listed below it:
<% OPTION EXPLICIT Response.Buffer = True %> <!--#include file="inctopsite.asp"--> <!--#include file="top.asp"--> <% 'Some before doings... Dim oConn, sRubrik Set oConn = IncTopsite_GetDatabaseConn() Dim nPageNo, nLastPage nLastPage = 1 nPageNo = Request.QueryString("pageno") If nPageNo = "" Then nPageNo = 1 End If 'Lets get the links Dim oRS Set oRS = Server.CreateObject("ADODB.Recordset") Dim sCat sCat = Request("cat") Dim strSQL strSQL = "select site.id as sid, url, sitename, sitedescr, banneraddress, catid, cat.txt as catname, incount, outcount from " & IncTopsite_GetTablePrefix() & "site as site, " & IncTopsite_GetTablePrefix() & "cat as cat where site.catid=cat.id" If sCat <> "" And CInt(sCat) <> 0 Then strSQL = strSQL & " AND catid=" & sCat End If Set oRS.ActiveConnection = oConn oRS.CursorLocation = 3 oRS.PageSize=50 oRS.Open strSQL & " order by incount desc",,3,1 If oRS.EOF = False Then nLastPage=oRS.PageCount oRS.AbsolutePage = nPageNo End If %> <html> <head> <meta http-equiv="Content-Language" content="en"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title></title> <style type="text/css"> <!-- body { font-family: Verdana,Arial,Helvetica; font-size: smaller; color: #000000} td { font-family: Verdana,Arial,Helvetica; font-size: smaller; color: #000000} th { font-family: Verdana,Arial,Helvetica; font-size: smaller; color: #000000} A:link {text-decoration: none;} A:visited {text-decoration: none;} A:hover {text-decoration: underline;} --> </style> </head> <body bgcolor="<%=g_strBodyColor%>"> <form method="get" action="showlist.asp"> <table width="100%" border="1" cellspacing="1" cellpadding="5" align="center" valign="top"><tr> <td width="20" align="center" bgcolor="#000000"><font face="Arial" size="3" color="#FFFFFF"><b>Rank</b></font></td> <td align="center" bgcolor="#000000"><font face="Arial" size="3" color="#FFFFFF"><b>Site</b></font></td> <td width="20" align="center" bgcolor="#000000"><font face="Arial" size="3" color="#FFFFFF"><b>In</b></font></td> <td width="20" align="center" bgcolor="#000000"><font face="Arial" size="3" color="#FFFFFF"><b>Out</b></font></td></tr> <% Dim sButton, sSiteName, sSiteDescription, sBannerAddress, nCount, sColor, nCatid, sCatName sColor = g_strSiteBgColor2 Dim nStartNo nStartNo = (nPageNo * 10) - 10 For nCount=1 To oRS.PageSize sBannerAddress = "" sSiteName = "" sSiteDescription = "" If oRS.EOF = False Then nCatid = oRS("catid") sCatname = oRS("catname") sBannerAddress = "<a href=" & """" & "goto.asp?id=" & oRS("sid") & """" & " target=_blank>" & "<img src=" & oRS("banneraddress") & " border=0 width=468 height=60>" & "</a>" sSiteName = "<a href=" & """" & "goto.asp?id=" & oRS("sid") & """" & " target=_blank>" & oRS("sitename") & "</a>" sSiteDescription = oRS("sitedescr") If sColor = g_strSiteBgColor2 Then sColor = g_strSiteBgColor1 Else sColor = g_strSiteBgColor2 End If %> <center> <table width="100%" cellspacing="2" cellpadding="2" border="1"> <tr> <td width="44" align="center" bgcolor="#FFFFFF"><%=nStartNo+nCount%></td> <td align="center" bgcolor="#FFFFFF"><%=sBannerAddress%><BR><%=sSiteName%><BR><%=sSiteDescription%></td> <td width="24" align="center" bgcolor="#FFFFFF"><%=ors("incount")%></td> <td width="32" align="center" bgcolor="#FFFFFF"><%=ors("outcount")%></td> </tr> </table> <% oRS.MoveNext End If Next oRS.Close Set oRS = Nothing oConn.Close Set oConn = Nothing Sub WritePrev() ' If CInt(nPageNo) <> 1 Then Response.Write "<a href=""showlist.asp?pageno=" & nPageNo-1 & """><img border=0 src=""prevpage.gif""></a>" End If End Sub Sub WriteNext() ' If CInt(nPageNo) <> CInt(nLastPage) And nLastPage<>0 Then Response.Write "<a href=""showlist.asp?pageno=" & nPageNo+1 & """><img border=0 src=""nextpage.gif""></a>" End If End Sub %> <tr> <td bgColor=<%=g_strBodyColor%> width="50%" align="left"><%WritePrev%></td> <td bgColor=<%=g_strBodyColor%> width="50%" align="right"> <%WriteNext%></td> Below is the include file: <!--#include file="incgenmail.asp"--> <% '''' Configuration: ''''1. Database connection Function IncTopsite_GetDatabaseConn() Dim oRet Dim strDSN strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("\../Directory/db/topsite2.mdb") Set oRet = Server.CreateObject ("ADODB.Connection") oRet.Open strDSN Set IncTopsite_GetDatabaseConn = oRet IncTopsite_PerhapsCleanUp oRet End Function '''Configuration: ''''2. Config variables Const g_strTitle = "" Const g_strTitle2 = "" Const g_strPath = "" Const g_strButtonImagePath = "" Const g_nSitesPerPage = "50" Const g_AdminUID = "" Const g_AdminPassword = "" Const g_ClickThruPage = True Const g_MailServer = "" Const g_OutgoingMailFrom = "" Const g_strSiteBgColor1 = "#D7D7D7" Const g_strSiteBgColor2 = "White" Const g_strBodyColor = "White" 'This variable could be set to ' DAY for hits/day ranking or ' TOTAL for total hits ranking Const g_strRankOption = "DAY" 'If set to true then clicking will take the user to another page and if he/she clicks ' there a hit will be counted. This is to defeat cheating Const g_fUseGateway = True '''Configuration: ''''3. Some ads if you'd like Function FAQ_GetAd(nNumber) Select Case nNumber Case 1 FAQ_GetAd = "" Case 2 FAQ_GetAd = "" Case 3 FAQ_GetAd = "" End Select End Function Function IncTopsite_PerhapsCleanUp( oConn ) If g_strRankOption = "TOTAL" Then IncTopsite_PerhapsCleanUp = False Exit Function End If Dim sNow, sStart, fShouldCleanup sNow = Now() sStart = Application("ts_start") If sStart = "" Then Dim oRSWhenStart Set oRSWhenStart = oConn.Execute("select startdate from "& IncTopsite_GetTablePrefix() & "sysvar " ) If oRSWhenStart.EOF Then oRSWhenStart.Close Set oRSWhenStart = Server.CreateObject("ADODB.Recordset") Set oRSWhenStart.ActiveConnection = oConn oRSWhenStart.Open "select * from " & IncTopsite_GetTablePrefix() & "sysvar where id = -1", ,1,3 oRSWhenStart.AddNew() oRSWhenStart("startdate") = Now() oRSWhenStart.Update oRSWhenStart.Close Set oRSWhenStart = Nothing sStart = Application("ts_start") Exit Function Else sStart = oRSWhenStart("startdate") oRSWhenStart.Close Set oRSWhenStart = Nothing End If End If fShouldCleanup = False If ShouldCleanUp( g_strRankOption, sStart, sNow ) = True Then oConn.Execute("update " & IncTopsite_GetTablePrefix() & "site set incount=0,outcount=0") Set oRSWhenStart = Server.CreateObject("ADODB.Recordset") Set oRSWhenStart.ActiveConnection = oConn oRSWhenStart.Open "select * from " & IncTopsite_GetTablePrefix() & "sysvar", ,1,3 oRSWhenStart("startdate") = Now() oRSWhenStart.Update oRSWhenStart.Close Set oRSWhenStart = Nothing End If End Function Function IncTopsite_GetTablePrefix() 'IncTopsite_GetTablePrefix = "" IncTopsite_GetTablePrefix = "" End Function Function ShouldCleanUp( g_strRankOption, sStart, sNo ) If g_strRankOption = "DAY" Then If DateDiff( "d", sStart, sNo ) > 1 Then ShouldCleanUp = True Exit Function End If End If ShouldCleanUp = False End Function Sub ListCategories( nSelected, fListAll ) Dim oRSCats Dim sSelected Set oRSCats = oConn.Execute("select id, txt from " & IncTopsite_GetTablePrefix() & "cat order by txt ") If fListAll = True Then If nSelected = "" Or CInt(nSelected)=0 Then sSelected = "selected " Else sSelected = "" End If Response.Write "<option " & sSelected & "value=""" & "0" & """>" & "All" & "</option>" End If While Not oRSCats.EOF If CInt(nSelected) = CInt(oRSCats("id").Value) Then sSelected = "selected " Else sSelected = "" End If Response.Write "<option " & sSelected & "value=""" & oRSCats("id") & """>" & oRSCats("txt") & "</option>" oRSCats.MoveNext Wend oRSCats.Close Set oRSCats = Nothing End Sub 'Not working yet Const g_AdminEmail = "" 'Set this so you will get email when someone has joined the list and validation is needed Const g_ValidationNeeded = False %> |
|
#2
|
|||
|
|||
|
Code:
<%
Dim sButton, sSiteName, sSiteDescription, sBannerAddress, nCount, sColor, nCatid, sCatName
sColor = g_strSiteBgColor2
Dim nStartNo
nStartNo = (nPageNo * 10) - 10
For nCount=1 To oRS.PageSize
sBannerAddress = ""
sSiteName = ""
sSiteDescription = ""
If oRS.EOF = False Then
nCatid = oRS("catid")
sCatname = oRS("catname")
sBannerAddress = "<a href=" & """" & "goto.asp?id=" & oRS("sid") & """" & " target=_blank>" & "<img src=" & oRS("banneraddress") & " border=0 width=468 height=60>" & "</a>"
sSiteName = "<a href=" & """" & "goto.asp?id=" & oRS("sid") & """" & " target=_blank>" & oRS("sitename") & "</a>"
sSiteDescription = oRS("sitedescr")
If sColor = g_strSiteBgColor2 Then
sColor = g_strSiteBgColor1
Else
sColor = g_strSiteBgColor2
End If
%>
The bolded area is your problem. (1*10)-10 = 0, (2*10)-10 = 10. The easiest way to fix this would be just to pass the count in the url. So in your next page link just put something like Code:
?Count=<%= Pagenumber + 50%> For your next question. You have a few options. You could check at sign up and if the banner link is not submitted then ask again for it. Or allow them to submit no banner and check for that on display and if the banner link is blank then don't display the image. Finally you could check on display if the banner link is blank and if it is then display your own default banner. Personally I would force them to submit a banner link. If you would rather not do that then I would just display my own personal default banner, free advertising for your own site .Something like this would work. Code:
<% If len(oRs("banneraddress") = 0 then strBanner = "my banner address" end if %>
"<img src=" & strBanner & " border=0 width=468 height=60>"
OR Code:
<% If len(oRs("banneraddress") <> 0 then Response.write("<img src=" & strBanner & " border=0 width=468 height=60>") End if %>
Last edited by defjamninja : April 14th, 2003 at 10:32 PM. |
![]() |
| Viewing: Dev Shed Forums > Programming Languages - More > ASP Programming > Topsites help please |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|
|