蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年8月25日 8:28

[ASP]一个统计问题,我搞糊涂了

想给数据库中的记录增加一个简单的统计功能,记录以下数据:
今日点击,昨日点击,本周点击,上周点击,本月点击,上月点击,总点击。
假设刷新+1
不是我想要现成的代码,我也看过一些例子,自己也想了一下,结果搞来搞去的搞晕了,总是不能正确记录。郁闷呢。
麻烦大家给个思路,或者看下面的代码应该怎样改一下才能正常。(除了上面要记录的东西各一个字段外,再需要增加的字段越少越好)

(周日按周七算,即一周的最后一天)。

[code]<%
Dim Id
Id = Request.QueryString("Id")
Set Rs = Server.Createobject("Adodb.Recordset")
Rs.Open "Select * From MusicList Where Id="&CInt(Id),Conn,1,3
        If (Weekday(Date())=2 Or DateDiff("w",Rs("Hits_Date"),Date())>0) And DateDiff("d",Rs("Hits_Date"),Date())>0 Then
                Rs("Hits_Weekday_1") = Rs("Hits_Weekday")
                Rs("Hits_Weekday") = 0
        End If
        If DateDiff("m",Rs("Hits_Date"),Date())>0 Then
                Rs("Hits_Month_1") = Rs("Hits_Month")
                Rs("Hits_Yesterday") = Rs("Hits_Today")
                Rs("Hits_Month") = 0
                Rs("Hits_Today") = 0
                Rs("Hits_Date") = Date()
        Else
                If DateDiff("d",Rs("Hits_Date"),Date())>0 Then
                        Rs("Hits_Yesterday") = Rs("Hits_Today")
                        Rs("Hits_Today") = 0
                        Rs("Hits_Date") = Date()
                End If
        End If

        Rs("Hits") = Rs("Hits")+1
        Rs("Hits_Today") = Rs("Hits_Today")+1
        Rs("Hits_Weekday") = Rs("Hits_Weekday")+1
        Rs("Hits_Month") = Rs("Hits_Month")+1
        Rs.Update
        Response.Write "总:" & Rs("Hits") & "<br>"
        Response.Write "今天:" & Rs("Hits_Today") & "<br>"
        Response.Write "昨天:" & Rs("Hits_Yesterday") & "<br>"
        Response.Write "本周:" & Rs("Hits_Weekday") & "<br>"
        Response.Write "上周:" & Rs("Hits_Weekday_1") & "<br>"
        Response.Write "本月:" & Rs("Hits_Month") & "<br>"
        Response.Write "上月:" & Rs("Hits_Month_1") & ""
Rs.Close
Set Rs = Nothing
%>[/code]

我又改了一下代码,好象记录没有太大问题了,大家帮看看还有什么问题不?不知道代码可否再精减一下?

说错了,Application服务器重起时,数据会丢失

不是哦,我这只是为了测试。
现在看一楼的代码,我又改了一下代码,好象记录没有太大问题了,就是记录星期那个还是有点不太正常(假如日期直接跨过去一周以上就不对了)。不知道应该咋改一下,或者代码可否再精减一下?

bjheiyu在上个帖子中说


我本来是写进数据库中的,只是为了测试代码方便,不用去数据库,所以写进缓存了,现在已经改成读写数据库的了。

详细的统计应该记录在数据库里,除了点击总数外,每次点击的时间也要记录,这样才能统计今日,昨日,一周内,一个月内等等的点击数。
这样就需要一个记录点击时间的数据表。不用很多的字段。

我也不需要太详细,但要统计的是每一条记录。所以想直接用几个字段搞定,我又改了一下代码,好象记录没有太大问题了,大家帮看看还有什么问题不?不知道代码可否再精减一下?




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com