帮帮小弟啊,是这样的,先看看图吧!!是网站会员的网络图。。。这个就是2差数,用来推荐会员的,只要每个会员的左边够了5个人才可以把人放在右边,该怎么来判断呢。我是用坐标来写的,最上面的人的坐标是0.0,下面一行的就是1.0....再下面就是2.0。。。。依次类推!!第一行和第二行的排列用我写的判断还可以正确实现。后面的就有问题了,帮帮小弟!!!
iRow=0
iCol=0
''从推荐人的位置开始,在它的网络下寻找空位
lvl=0
do ''一直循环往下找
For o=introRow To introRow+lvl
sql = "select * from wlt where(iRow="&o&" and iCol=0)"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,3
If rs.eof Then
if lvl<=5 then ''发现空位,插入
iRow=o
iCol=0
rs.addnew
rs("userid")=id
rs("iRow")=iRow
rs("iCol")=iCol
rs("introid")=introid
rs.update
Exit do
else
lv=0
do ''一直循环往下找
For i=introCol*(2^lv) To introCol*(2^lv)+2^(lv-1)
sql = "select * from wlt where(iRow="&(introRow+lv)&" and iCol="&i&")"
set rsf=server.createobject("adodb.recordset")
rsf.open sql,conn,1,3
If rsf.eof Then
if iCol=introCol*(2^lv) or iCol=introCol*(2^lv)+2^(lv-1) then ''发现空位,插入
iRow=introRow+lv
iCol=i
rsf.addnew
rsf("userid")=id
rsf("iRow")=iRow
rsf("iCol")=2^i
rsf("introid")=introid
rsf.update
session("lv1")=lv
lv=0
Exit do
end if
End If
rsf.close
next
lv=lv+1
Loop
end if
End If
rs.close
next
lv=lv+1
lvl=lvl+1
Loop
这个是部分关键代码!!!!!!!!