这是我做的一个计算日访问量的代码.为什么每次当我刷新页面的时候就加了3。请大虾指点~

tandry 2003-09-30 10:22:06
<%
dim daycount
sql1="select * from visit where visit_name='"& session("username")&"'"
set rs=conn.execute (sql1)
if rs.eof or rs.bof then
sql1="insert into visit (visit_ip,visit_name,visit_count,visit_date) values ('"&request.ServerVariables("REMOTE_ADDR")&"','"&session("username")&"',1,date())"
'response.Write(sql1)
conn.execute sql1
else
'response.Write(rs("visit_count"))
sql1="update visit set visit_count=visit_count+1, visit_date=date() where visit_name='"&rs("visit_name")&"'"
conn.execute sql1
end if
sql1="select sum(visit_count) as counts from visit where visit_date=date()"
set rs=conn.execute (sql1)
daycount=rs("counts")
%>
...全文
88 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
tandry 2003-09-30
  • 打赏
  • 举报
回复
试了,rs("a")的值是1
homeyang 2003-09-30
  • 打赏
  • 举报
回复
我还是觉得你得visit_name重复啦,你看一下数据中visit_name有没有重复。
或者用
sql="select count(*) as a from visit where visit_name='"&rs("visit_name")&"'"
set rs=conn.execute (sql)
看一下rs("a")的值是多少
tandry 2003-09-30
  • 打赏
  • 举报
回复
吃饭先~
吃完再up~
tandry 2003-09-30
  • 打赏
  • 举报
回复
大虾们,想想办法呀~
up~
sunnyBelt 2003-09-30
  • 打赏
  • 举报
回复
同意一楼的说法
tandry 2003-09-30
  • 打赏
  • 举报
回复
q_mei(q_mei)的办法和chxzll(小气包)的办法都是解决删掉了昨天的访问量。今天的访问量还是加了3,没刷新一次页面都加3。
tandry 2003-09-30
  • 打赏
  • 举报
回复
chxzll(小气包)的办法我试了,只是解决了把昨天的访问量删掉。
至于今天的访问量还是不行啊,还是加了3。要不你们试试~真头疼~

至于q_mei(q_mei) 的办法我正在试~
chxzll 2003-09-30
  • 打赏
  • 举报
回复
把你的日期型变成字符型然后这样写

<%
session("username") = "dddd"
dim daycount
sql1="select * from visit where visit_name='"& session("username")&"'"
set rs=conn.execute (sql1)
if rs.eof or rs.bof then
sql1="insert into visit (visit_ip,visit_name,visit_count,visit_date) values ('"&request.ServerVariables("REMOTE_ADDR")&"','"&session("username")&"',1,'" & date() & "')"
response.Write(sql1)
conn.execute sql1
else
if Cdate(rs("visit_date"))<>date() then
sql1="update visit set visit_count=1, visit_date='" & date() & "' where visit_name='"&rs("visit_name")&"'"
else
sql1="update visit set visit_count=visit_count+1 where visit_name='"&rs("visit_name")&"'"
end if
conn.execute sql1
end if
sql1="select sum(visit_count) as counts from visit where visit_date='" & date() & "'"
set rs=conn.execute (sql1)
daycount=rs("counts")
Response.Write(daycount)
%>
tandry 2003-09-30
  • 打赏
  • 举报
回复
谢谢各位大虾的指点,辛苦了。我去试试。解决了就结帐。大家稍等~
qmei 2003-09-30
  • 打赏
  • 举报
回复
这句有问题
sql1="select sum(visit_count) as counts from visit where visit_date=date()"

换成
sql1="select visit_name,visit_date,sum(visit_count) as counts from visit group by visit_name,visit_date" (查所有时间的不同用户在不同日期的访问量)

如果要设置时间段的话,可以这样
sql1="select visit_name,visit_date,sum(visit_count) as counts from visit where visit_date>='"+strSdate +"' and visit_date<='" + strEdate + "' group by visit_name,visit_date"

另外查询的这段代码尽量单独放,不要和前面的保存放在一个流程里面

homeyang 2003-09-30
  • 打赏
  • 举报
回复
你这个好像不是日访问量,而是总的访问量,
tandry 2003-09-30
  • 打赏
  • 举报
回复
homeyang()
嗯~这也是个问题~我去试试~问题解决的就结帐~
qmei 2003-09-30
  • 打赏
  • 举报
回复
第一次insert记录的时候有 visit_ip地址
下次保存的时候 条件只有 visit_name

刷新页面加的数据有时 3 ,有时2,
肯定是同一用户在别的地方也登陆了
或者就是这个程序别执行了多次
chxzll 2003-09-30
  • 打赏
  • 举报
回复
sql1="select sum(visit_count) as counts from visit where visit_date=date()"
其中的visit_date应该是一个特定日期,这段代码似乎没问题,可能是你的程序逻辑哪儿有问题
tandry 2003-09-30
  • 打赏
  • 举报
回复
大家帮帮忙啊~再不帮我,我就失业了~
homeyang 2003-09-30
  • 打赏
  • 举报
回复
sql1="update visit set visit_count=visit_count+1, visit_date=date() where visit_name='"&rs("visit_name")&"'"
我是说visit_date的问题了,你这样写是的话那昨天的visit_count也放到今天的visit_count来加1啦。且visit_date变成今天啦!
如:visit_count=2,visit_date是昨天,
那么今天打开这个网页就变成
visit_count=3,visit_date是今天啦,应该是这个问题吧

你应该先清空了昨天的记录再进行该操作就没问题啦
tandry 2003-09-30
  • 打赏
  • 举报
回复
visit_name就是用户名,是唯一的~
至于那个sql1我是想把该用户的访问次数自动加一
后面的sum()是把今天所有用户的访问次数加起来~
可是我就是不知道为什么,每次刷新页面的时候就加了3,昨天是加2,真是奇怪~烦~
rexsp 2003-09-30
  • 打赏
  • 举报
回复
这段代码似乎没有问题,是不是被多次调用了。
fangpeng2003 2003-09-30
  • 打赏
  • 举报
回复
语句没有错呀,关注
云帆 2003-09-30
  • 打赏
  • 举报
回复
有意思!先顶一下!
加载更多回复(17)

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧