> 백엔드 개발 > PHP 튜토리얼 > PHP+Mysql无限极归类高效查询

PHP+Mysql无限极归类高效查询

WBOY
풀어 주다: 2016-06-13 11:10:43
원래의
839명이 탐색했습니다.

PHP+Mysql无限极分类高效查询
Mysql分类表
id pid level name
1 0 0 test1
2 0 0 test2
3 1 1 test1.1
4 3 2 test1.1.1

PHP查询方法
Mysql数据查询类忽略----(大家都懂的)

我的查询方法:

$My_rs = $my_conn->mysql_query('select * from table where pid = 0');<br />$class_rs = array();<br />$Do_While_Static=mysql_num_rows($My_rs)?true:false;<br />if($Do_While_Static) $Prs=array($My_rs);<br />while($Do_While_Static){<br />    $My_rs=end($Prs);<br />    if($rs=mysql_fetch_array($My_rs)){<br />        $class_rs[]=$rs;<br />        $My_Prs = $my_conn->mysql_query('select * from table where pid = '.$rs['id']);<br />        $Temp_Static=mysql_num_rows($My_Prs)?true:false;<br />        if($Temp_Static) $Prs[]=$My_Prs;<br />    }else{<br />        array_pop($Prs);<br />        if(count($Prs)==0){<br />            $Do_While_Static=false;<br />            break;<br />        }<br />    }<br />}
로그인 후 복사


foreach($class_rs as $rs){<br />    $T_Str=str_pad('',$rs['level'],"-");<br />    echo $T_Str.$rs['name'];<br />}
로그인 후 복사


以上就是我的查询和输出代码,我不知这个查询是不是算高效查询,所以我分享出来,让大家给点意见,或者大家分享一下自己的查询和输出方法,让我学习一下,谢谢大家了

mysql php
------解决方案--------------------
一般来讲没啥很大的问题的。
------解决方案--------------------
除非寫的非常離譜,要不然性能影響不大
------解决方案--------------------
$Prs[]=$My_Prs;
利用堆栈将递归化为循环,代码反而变得隐涩了
由于循环体内的代码量增加,效率应该不比递归强
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿