이 글의 내용은 mysql에서 Infinitus 분류 코드 구현에 관한 내용입니다. 필요한 친구들이 참고하시면 좋을 것 같습니다.
다른 곳에서도 찾아봤는데 꽤 괜찮았던 것 같아서 여기에 공유해봅니다.
사진을 올릴 수 없고 간단하게 처리만 할 수 있습니다:
id ~ 중국 뉴스 1 1 네일 브라더 뉴스 3 0-1-3#🎜 🎜#
문 하나: SELECT id,name,pid,path,concat(path,'-',id) AS newpath FROM cates ORDER BY newpath#🎜🎜 #쿼리 후 결과:
id > ~ 미국 뉴스 1 1 0 1 0-1-3-5
할 수 있습니다 구조가 매우 명확하다는 것을 알 수 있습니다. 이는 mysql의 정렬 기능을 매우 교묘하게 사용합니다. concat() 함수를 사용하여 현재 경로를 현재 ID와 연결합니다(실제로 문자열을 연결하고 싶습니다). 이는 별칭 newpath를 제공하고 우연히도 0을 먼저 비교합니다. , 비교 1, 비교 2, 비교 3... 이런 식으로 쿼리 결과가 수준별로 직접 정렬됩니다. 다음으로 포그라운드에서 출력만 반복하면 되며 "계층적 관계 자리 표시자"도 가능합니다. newpath의 0-1-2-4는 PHP를 출력할 때 위의 명령문을 사용하여 각 데이터 조각의 값을 처리해야 합니다. 먼저 배열로 나눈 다음 통계에 이 배열에 대해 키 개수(데이터 집합)를 배열에 추가하고, 계산된 배열 개수를 이 키에 넣습니다.
thinkphp 5.0 예:
$list = CateModel::fild(‘id,name,pid,path,concat(path,’-‘,id)’)->order(‘newpath asc’)->select(); // 上面模型查询方法只是大概意思,可以根据最上面的 mysql 语句,用 tp5 的方式拼出来。 foreach ($list as $k=>v){ $list[$k][‘count’] = count(explode(‘-‘,$v)) }
이 개수는 계층적 분류를 위한 자리 표시자입니다. 그런 다음 템플릿에서 반복하고 반복할 때마다 반복합니다.# 🎜 🎜#
<select name=”aa”> {volist name=”list” id=”vo”} <option vlaue=”{$vo.id}”> {php} for($i=0;$i<$vo[‘count’]*2;$i++){ echo ‘ ’ } {/php} {$vo.name} </option> {/volist} </select>
#新闻##🎜🎜 ####🎜🎜 ## 🎜🎜##🎜🎜 ## 🎜🎜#관련 추천:#🎜🎜 ## 🎜🎜#Thinkphp 무한레벨 컬럼의 정렬 구현 코드 #🎜🎜 #
TP5 프레임워크에서 무한 채점을 달성하기 위해 재귀를 사용하는 방법(코드 예)
위 내용은 mysql에서 무한 분류 코드 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!