具体的功能:
实现每页显示30条广告,即将过期的广告位于最上位置,到期后出队,不在第一页显示,转成免费广告。第2页的第一条广告入队,在第一页显示,收费广告按照失效期排队,即将到期的位于最上,依次类推。当所有收费广告列完后,然后排列免费广告,免费广告按照添加时间的倒序排列,最后添加的越靠前。
<%
Class Time_M
Public Typt_Data(6),Sql,AClassID,BClassID,ProvinceID
'类的初始化
Private Sub Class_Initialize()
'初始化
Conn.ExeCute("update info set begintime='2100-01-01 00:00:00.000',endtime='2100-01-01 00:00:00.000',vip=0 where EndTime<GetDate()")
If Request("ID")<>"" Then
Call GetType(Request("ID"))
Else
End If
Typt_Data(0)=Array("Select * From Info Order By EndTime,AddDate desc")
Typt_Data(1)=Array("Select * From Info Where AClassID="&AClassID&" And Vip=1 Order By EndTime,AddDate desc")
Typt_Data(2)=Array("Select * From Info Where BClassID="&BClassID&" And Vip=1 Order By EndTime,AddDate desc")
Typt_Data(3)=Array("Select * From Info Where ProvinceID="&ProvinceID&" And Vip=1 Order By EndTime,AddDate desc")
Typt_Data(4)=Array("Select * From Info Where AClassID="&AClassID&" And ProvinceID="&ProvinceID&" And Vip=1 Order By EndTime,AddDate desc")
Typt_Data(5)=Array("Select * From Info Where BClassID="&BClassID&" And ProvinceID="&ProvinceID&" And Vip=1 Order By EndTime,AddDate desc")
Sql=Typt_Data(Request("DisPlay"))(0)
End Sub
'取管理员审核产品的类别
Function GetType(ID)
Set Rs=OpenRs("Select * From Info Where ID="&ID)
AClassID=Rs("AClassID")
BClassID=Rs("BClassID")
ProvinceID=Rs("ProvinceID")
CloseRs(Rs)
End Function
'添加数据
Function Check(ID)
'如果/0<满足条件的条数<=30/
'信息的开始时间为当前时间
'如果/30<满足条件的条数<=60/
'信息的开始时间为第1条信息的开始时间+1s
'如果/60<满足条件的条数<=90/
'信息的开始时间为第31条信息的开始时间+1s
Dim Count,PList,ListArray
PList=""
Set Rs=OpenRs(Sql)
Echo Sql
If Rs.ReCordCount=0 Then
Count=0
Else
Count=Rs.ReCordCount
Do While Not Rs.Eof
PList=PList&","&Rs("ID")
Rs.MoveNext
Loop
End If
CloseRs(Rs)
ListArray=Split(PList,",")
If Count<=29 Then
'Echo "当前时间"
Set Rs=OpenRs("Select * From Info Where ID="&ID)
Rs("BeginTime")=Now()
Rs("EndTime")=Now()+7
Rs("Vip")=1
Rs.UpDate
CloseRs(Rs)
Else
'Echo "-30的时间"
Set Rs=OpenRs("Select * From Info Where ID="&ID)
Set RRs=OpenRs("Select * From Info Where ID="&ListArray(Count-29))
Rs("BeginTime")=DateAdd("s",i,RRS("EndTime"))
Rs("EndTime")=DateAdd("s",i,RRS("EndTime"))+7
Rs("Vip")=1
CloseRs(RRs)
Rs.UpDate
CloseRs(Rs)
End If
Echo"<script language=javascript>window.location='Info.asp';</script>"
End Function
End Class
%>
上面是处理这个功能类的代码,下面的为前台显示代码
因代码中包含html,会造成混乱,所以将代码写入文本
注:OpenRs();ClosrRs();Echo()都是自定义函数
---------------------OpenRs()------------------------------
'打开记录集
Function OpenRS(Sql)
on error resume next
dim rs
Set rs=Server.createobject("adodb.recordset")
rs.Open sql,Conn,3,3
if err then
response.write "<br>出现了错误:" & err & "<br>sql:" & sql
end if
on error goto 0
if isobject(rs) then
set openrs=rs
end if
End Function
-----------------------CloseRs()----------------------------------
'关闭记录集
Function CloseRS(RS)
RS.Close
set RS=nothing
End Function
------------------------Echo()-----------------------------------------
'//自定义输出函数
Function Echo(Str)
Response.Write Str
End Function