Home  >  Article  >  Backend Development  >  PHP+Mysql无限极归类高效查询

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

WBOY
WBOYOriginal
2016-06-13 11:10:43820browse

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;
利用堆栈将递归化为循环,代码反而变得隐涩了
由于循环体内的代码量增加,效率应该不比递归强
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn