실제로 무한한 수준의 분류를 통해 루프의 두통입니다.
예를 들어, 선택 또는 테이블을 반복하고 많은 판단을 작성해야합니다.
더 좋은 방법이 있습니까?
내 접근 방식은 배열을 생성하는 것입니다. 배열을 반복적으로 호출하고 배열을 직접 반복 할 수 있습니다.
편의상, 나는 그것을 수업에 썼습니다.
class.asp
모든 카테고리 및 정렬의 배열을 순서대로 반환합니다.
4 가지 속성이 있습니다.
다음과 같이 코드를 복사하십시오. setaa = newClassList
aa.id = "id"// 번호 이름입니다
aa.classname = "classname"// 분류 이름
aa.pid = "pid"// 상위 ID 이름
aa.db_name = "class"// 테이블 이름
list = aa.arrylist ()
다음과 같이 코드를 복사하십시오. <%
클래스 클래스리스트
privatec_id
privatec_db_name
privatec_pid
privatec_className
publpropertyletid (str)
c_id = str
엔드 프로페티
PublicPropertyletdb_name (str)
c_db_name = str
엔드 프로페티
publpropertyletpid (str)
c_pid = str
엔드 프로페티
PublicPropertyletclassName (str)
c_className = str
엔드 프로페티
Dimlist ()
디미, n
privatesubclass_initialize () '초기화 변수
i = 0
n = 0
Endsub
PublicFunctionClassArry (thisid, pid) '더 낮은 ID를 얻으십시오
ifpid> 0then
sql = "select*from"& c_db_name & "where"& c_pid & "="& thisid
또 다른
sql = "select*from"& c_db_name & "where"& c_id & "="& thisid
endif
setrs_c = conn.execute (SQL)
n = n+1
dowhilenotrs_c.eof
list (0, i) = rs_c (c_id) '배열에로드
list (1, i) = rs_c (c_classname)
목록 (2, i) = n
'n = n+1
i = i+1
thisid = classarry (rs_c (c_id), 1) '여기 마지막 서브 클래스까지 재귀 호출이 있습니다.
rs_c.movenext
고리
n = n-1
RS_C.CLOSE
최종 기능 장애
PublicFunctionArryList () ''모든 루트 클래스를 루프합니다
setrs_c = conn.execute ( "& c_db_name)에서"SelectCount ( "& c_id &")
길이 = rs_c (0)
RS_C.CLOSE
redimlist (2, lenght) '배열을 설정하십시오
setrs1 = conn.execute ( "& c_db_name &"where "& c_pid &"= 0 "에서"선택 "& c_id &")
dowhilenotrs1.eof
CallClassArry (RS1 (C_ID), 0)
'n = 1
rs1.movenext
고리
rs1.close
arryllist = 목록
최종 기능 장애
엔드 클래스
%>
예제 테스트 :
테이블 클래스
전지
ID : 자동 번호 매기기
ClassName : 이름
PID : 부모 ID