무제한 분류는 주로 상위 분류의 ID와 분류 경로를 저장하여 이루어집니다. 데이터의 구조가 단순하기 때문에 분류 관계를 트리로 표시하려면 재귀를 이용해서 구현하는 방법밖에 생각이 안 나네요.
무제한 분류는 주로 상위 분류의 ID와 분류 경로를 저장하여 이루어집니다. 데이터의 구조가 단순해서 분류 관계를 트리 형태로 표시하고 싶은데, 이를 구현하기 위해서는 재귀를 이용하면 된다고 생각합니다. 다음은 제가 직접 작성한 분류 데이터 테이블 구조와 트리 표시 기능입니다. 틀렸나요? 모두가 지적해 주셨으면 좋겠습니다.
테이블 구조: id 필드는 카테고리 식별자, name 필드는 카테고리 이름, father_id 필드는 상위 카테고리의 ID, path 필드는 카테고리 경로(카테고리의 조상 컬렉션 저장) , isdir은 디렉토리인지 여부를 결정합니다(1은 yes를 의미하고 0은 no를 의미).
표시 기능 :
코드 복사 코드는 다음과 같습니다.
//$count는 분류 수준
sort_list ($str, $fatherid,$count)
{
$rs = $this->sql->re_datas("father_id = fatherid에서 *를 선택하세요."); this->sql_numrows();
$i=0;
$n = 1
while(isset($rs[$i]))
{
$name = " ";
for($n = 1; $n < $count; $n )
{
$name.="│ "
}
if( $i 1= =$num)
{
$name.="└─".$rs[$i][name]
}
else
{
$ name.=" ├─".$rs[$i][이름];
}
if($rs[$i][isdir])
{
$str.="< ;span style= 'color:#CCCCCC'>".$name."";
}
else
{
$str.=$name"; >}
$temp = $count 1;
$str = $this->sort_list($str,$rs[$i][id],$temp)
$i ; >}
return $str;
}
$this->sql 객체가 sql 작업 클래스 객체인 경우 re_datas() 함수는 쿼리된 배열을 반환하고 sql_numrows() 함수는 쿼리된 번호를 반환합니다
호출 방법: $sort_list = sort_list($sort_list,0,1)