黄金梅植物:asp,循环问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 04:48:33
问个问题?新用户注册时必须有推荐人,字段name1(用户),name2(推荐人),再样求出用户所推荐人的推荐人.......总数,类似直销..
dommy529,我有点看不懂呀@@能详细点吗.>麻烦你了,
efaye_yang 你求出的应该是一层人数总和,我要的是推荐人的推荐人的......一直下去的人数总和!1还是感谢你的帮助@
<>>下面办法都不能解决问题,还是特别谢谢你们~~~~

我也来说一下算法:
先保证你建的数据库中有两个表
表1.user-login用户信息表包括帐号,密码之类

表2.mid-peop 中间人信息
至少包含两个字段 :新注册用户帐号和中间人帐号

先连接数据库
建立表2的连接
定义一个初始变量counter用来记录推荐人个数初始值为0
定义另一个初始变量mid_ID用来存储每次循环一次后,所查询到的推荐人帐号
*假如是从名为prelead的帐户开始(我们要求的是把他推荐人的推荐人……所有人个人加总)mid_ID='prelead'
查询mid-peop表,
进行一次判断,
do while <条件:如果中间人存在>

获得直接推荐人(假设名为pre1)
counter=counter+1
重新赋值mid_ID=rs("中间人帐号")
返回到循环顶部,等待下次查询
if <到达第一注册人(他没有推荐人)>
结束
输出counter的值
end if
end do 整个循环到此结束

推荐人设置成一个字段name,为数组,用户名用逗号隔开,求总数可以用SPLIT()函数

连接数据库,获得name字段的值rs("name")
name=rs("name")
dim myarr=new Array()
myarr=Split(name,',')

推荐人总数=ubound(myarr)+1

select count(name1) from "表名" where name2='要求的推荐人ID'
这里以推荐人的ID为efaye,表名为table1举例,求efaye所推荐的总人数,其中table1中name2要求为只能填写一个。
select count(name1) as num from table1 where name2='efaye'
注意,这里name2='efaye'中的单引号表示efaye为字符型,如果name2为整型,也可以不要单引号
上面问题,如果name2注册时可以填写多个,中间以|符号隔开,则:select count(name1) as num from table1 where name2 like '%|efaye%' or name2 like '%efaye|%'
具体方法你可以查看sql数据库select语句的说明文档

Select Count(name1) From 表 As a Where Exists(Select 0 From 表 As b Where b.name1='张三' And a.name2=b.name2)
这个语句得到张三的推荐人所推荐的总人数。