| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 611 人关注过本帖
标题:[求助]显示在线会员级别的一个不解的问题。
只看楼主 加入收藏
yc12
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2006-7-15
收藏
 问题点数:0 回复次数:4 
[求助]显示在线会员级别的一个不解的问题。


大家好,麻烦大家帮忙看看。
我是想显示在线会员的级别,usersonline这个表里面是在线会员。user这个表里面是会员的资料。userroleid是会员的角色。1为管理员。
但是我运行的结果是

错误类型:
ADODB.Field (0x800A0BCD)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

如果把onlinerole=conn1.Execute("select UserRoleID From user where UserName='"&onRs("UserName")&"' ")(0)这句注销掉就能够正常显示在线会员,但是分不了级别。我老是感觉哪里有问题,但还是找不到,麻烦大家帮忙看看。
onRs("UserName")可以显示会员的名字。


<%
onsql="select * from [UsersOnline] where UserName<>''"
set onRs=Server.CreateObject("ADODB.Recordset")
Set onRs=conn1.Execute(onsql)
do while not onRs.eof
onlinerole=conn1.Execute("select UserRoleID From user where UserName='"&onRs("UserName")&"' ")(0)
if onlinerole=1 then
Usefacephoto="<img src=images/UserRoleID/1.gif>"
elseif onlinerole=2 then
Usefacephoto="<img src=images/UserRoleID/2.gif>"
elseif onlinerole=4 then
Usefacephoto="<img src=images/UserRoleID/3.gif>"
elseif onlinerole=6 then
Usefacephoto="<img src=images/UserRoleID/4.gif>"
elseif onlinerole=3 then
Usefacephoto="<img src=bbs/images/UserRoleID/5.gif>"
else

Usefacephoto="<img src=bbs/images/UserRoleID/5.gif>"
'Usefacephoto="<img src=bbs/images/UserRoleID/6.gif>"
end if
if NO_count < 6 then
NO_count=NO_count+1
else
NO_count=1
end if


content=""&content&Usefacephoto&" <a href=Profile.asp?UserName="&onRs("UserName")&">"&onRs("UserName")&"</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"


if NO_count = 6 then content=""&content&"<br>"

onRs.Movenext
loop
onRs.close
conn1.close


%>

搜索更多相关主题的帖子: 级别 会员 在线 
2007-01-08 20:51
zfjyyzycl
Rank: 2
等 级:论坛游民
帖 子:239
专家分:10
注 册:2006-4-15
收藏
得分:0 
有个非常简单的方法就是,在会员登陆的时候,将它的属性写入到 usersonline 这个表,你想要显示哪个属性,就写入哪个属性,那么在您显示再现会员的时候,就只需要浏览 usersonline 这个表就可以了,
你现在这样,如果是时时显示在线会员,那么每次刷新的时候,就要在会员表和在线会员表里连接查询一次,如果你的会员少还可以,如果你的会员超过一定的数量,就会很慢,你的程序的查询量基本上是 会员数*在线会员数,如果会员有一万人,在线会员达到百十号人,嘻嘻,是不是需要查上百万的数据,复杂而且效率低下,建议采用我的方案。
2007-01-09 17:11
lq7350684
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5089
专家分:98
注 册:2006-11-6
收藏
得分:0 
不错。
楼上的方法可行.
2007-01-09 17:13
yc12
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2006-7-15
收藏
得分:0 
以下是引用zfjyyzycl在2007-1-9 17:11:03的发言:
有个非常简单的方法就是,在会员登陆的时候,将它的属性写入到 usersonline 这个表,你想要显示哪个属性,就写入哪个属性,那么在您显示再现会员的时候,就只需要浏览 usersonline 这个表就可以了,
你现在这样,如果是时时显示在线会员,那么每次刷新的时候,就要在会员表和在线会员表里连接查询一次,如果你的会员少还可以,如果你的会员超过一定的数量,就会很慢,你的程序的查询量基本上是 会员数*在线会员数,如果会员有一万人,在线会员达到百十号人,嘻嘻,是不是需要查上百万的数据,复杂而且效率低下,建议采用我的方案。

多谢2楼的提醒.我的usersonline这个表中只有username和sessionid和时间,这3个字段.
如果username为空就是过客,但是会员的级别的属性好象只有user表有.所以我想要查询这个user表.
兄弟的意思我明白了,就是在useronline中再加个会员属性字段.然后来显示这个表就行了!!
我可能没有想到,谢谢了!!不过我还是想弄明白,为什么哪句老是显示错误????毕竟这个是我参考其他论坛编写成的.应该没问题的呀!!
还有sql语句后面的(0)这个是什么意思??兄弟能帮忙说明一下么??谢谢了!!!

[此贴子已经被作者于2007-1-9 19:06:33编辑过]


俺是只大菜鸟!!
2007-01-09 19:04
lq7350684
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5089
专家分:98
注 册:2006-11-6
收藏
得分:0 
那个(0)我个人认为是笔误,是没有用处的.
好象后面可以加1,1或者1,3等等,没见过加(0)的这种情况.
2007-01-10 09:31
快速回复:[求助]显示在线会员级别的一个不解的问题。
数据加载中...
 
   



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

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