이럴 때는 재귀호출을 사용해야 합니다.
재귀 호출이란 호출된 함수가 실행 도중 자기 자신을 다시 호출하는
것을 말하죠. 하노이 탑을 구현하는 것이 재귀 호출의 가장 기본적인
예이지요.
다음과 같이 함수를 하나 만드시면 해결될 거 같네요.
Sub AddBonus(id)
'인자로 전달된 id변수는 새로 가입하는 사람의 ID입니다.
Dim cn, query
'cn은 Connection객체라고 가정합시다..^^;;
'먼저
query = "SELECT refer FROM member WHERE id = '" id & "'"
'refer 컬럼에 추천인 ID가 저장된다고 가정하죠
Set rs = cn.Execute(query)
'추천인이 존재한다면
If Not rs.EOF Then
'추천인에게 마일리지를 적용합니다.
query = "UPDATE member SET bonus = bonus + 1 WHERE id='" & rs(0) & "'"
'해당 추천인을 인자로 이 함수를 다시 호출합니다.
AddBonus(rs(0))
Else
'추천인이 존재하지 않는다면 함수를 종료합니다.
Exit Sub
End If
End Sub
이상과 같이 하면 추천인이 존재하는 한 계속 마일리지를 적용할 수
있습니다.
도움이 되셨기를...
=================================================
WebGenie - Professional Site Builder
MSN : geniex@msn.com
=================================================
--------------------- [원본 메세지] ---------------------
음..지금 쇼핑몰에다가 다단계식으로 추천을 하면 추천 받은 사람은 0.1%의 적립금이 쌓이는 알고리즘좀 갈켜 주세요..ㅠㅠ
예를 들어서 A,B,C 가 있다면
B가 A를 추천 하면 A는 적립금이 올라가고 C가 B를 추천 하면 B도 적립금이 올라가고 A도 적립금이 올라가는 방식요..어떤 식으로 해야 할지 몰겠네요..이런식으로 꼬리에 꼬리를 물고 가는 거요.
혹시 이런 소스만들어 보신분 소스좀 보내 주심 않될까요??
부탁 임다...
지발..알고리즘이라도...
하나도 몰겠어요..
만약 루프를 돌리면 A가 B를 추천 하고 B는 다시 C를 추천하고 C는 다시 A를 추천 해버리면 무한 루프가 돌아 가버리 잖아요..
지금 머리가 뽀개 지는거 같아요..부탁 임다..