| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 643 人关注过本帖
标题:这个IF语句该怎样写?
只看楼主 加入收藏
lijiong520
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2007-5-21
收藏
 问题点数:0 回复次数:4 
这个IF语句该怎样写?
下面是一个简单投票系统的处理文件! 实现功能是:一个IP一个小时内只能投一次票! 

<%
set myconn=Server.CreateObject("ADODB.Connection")
myconn.open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = "&server.Mappath("user.mdb")
set rs=server.CreateObject("ADODB.RecordSet")  '连接数据库
rs.open "select * from toupiao where ip='"&request.form("ip")&"'",myconn,1,1  '从数据库中找是否有当前IP的记录
if not rs.eof  then '如果有IP记录
   lasttphour=hour(rs("time"))   '上次投票的时间的小时
   nowhour=hour(now)      '现在时间的小时
  if (nowhour-lasttphour)<1 then  '如果两次相隔小于1个小时
   
      response.write "<script language=javascript> alert('对不起!一个小时只能投一次票!');location.href='index1.asp';</script>"
 response.End()
    end if
  rs.close

else  '如果无IP记录则执行下面的代码!下面插入到数据库的代码都正确,测试过了!可有IP记录又相差大于1个小时不会弄了?
'......插入到数据库中的代码   
End if
 %>
现在就是当同一IP两次时间相差大于1个小时 时,执行不了下面的插入数据库代码!  我明白这样肯定插入不了! 但不知道怎样修改! 难道在上面加上
 elseif (nowhour-lasttphour)>1 then  再把下面那么多的代码(有几十行)再抄一遍吗、?这样我想肯定能实现功能,可太麻烦太麻烦了,那位大侠看看给改一下,指点一下! 
搜索更多相关主题的帖子: 语句 
2007-11-23 22:55
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 

h =datediff(h,nowhour,lasttphour)
来判断h是否大于1,如果大于1执行你下面的语句
2007-11-24 00:43
dushui265
Rank: 1
等 级:新手上路
威 望:2
帖 子:227
专家分:0
注 册:2007-9-28
收藏
得分:0 
同意楼上的写法,简单一些,如果有IP记录又相差大于1个小时的话,应该是更新数据库里面的记录吧,这部分可以这样写
if not rs.eof  then '如果有IP记录
   lasttphour=hour(rs("time"))   '上次投票的时间的小时
   nowhour=hour(now)      '现在时间的小时
   h =datediff(h,nowhour,lasttphour)
      if  h<1 then
response.write "<script language=javascript> alert('对不起!一个小时只能投一次票!');location.href='index1.asp';</script>"
response.End()
      else
      sql="update toupiao set  time=now()  where ip='"&request.form("ip")&"'"
     end if
     rs.close
else
   sql='无IP记录的sql语句'
   conn.execute ……(执行sql插入到数据库)
end if

2007-11-24 17:43
lijiong520
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2007-5-21
收藏
得分:0 
不过我不想让其更新记录,  而是再插入记录! 该怎样写?
2007-11-24 19:57
dushui265
Rank: 1
等 级:新手上路
威 望:2
帖 子:227
专家分:0
注 册:2007-9-28
收藏
得分:0 
这样的话,比更新又容易写一些
if not rs.eof  then '如果有IP记录
   lasttphour=rs("time")   '上次投票的时间的小时
   h =datediff(hour,lasttphour,now())
      if  h<1 then
response.write "<script language=javascript> alert('对不起!一个小时只能投一次票!');location.href='index1.asp';</script>"
response.End()
      else
      rst.addnew
      rst("ip")=request.form("ip")
      rst.update
      rs.close
      end if
end if

[[italic] 本帖最后由 dushui265 于 2007-11-25 16:07 编辑 [/italic]]

2007-11-25 15:51
快速回复:这个IF语句该怎样写?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034487 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved