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

a373903757 2013-01-07 01:00:25
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');
$class_rs = array();
$Do_While_Static=mysql_num_rows($My_rs)?true:false;
if($Do_While_Static) $Prs=array($My_rs);
while($Do_While_Static){
$My_rs=end($Prs);
if($rs=mysql_fetch_array($My_rs)){
$class_rs[]=$rs;
$My_Prs = $my_conn->mysql_query('select * from table where pid = '.$rs['id']);
$Temp_Static=mysql_num_rows($My_Prs)?true:false;
if($Temp_Static) $Prs[]=$My_Prs;
}else{
array_pop($Prs);
if(count($Prs)==0){
$Do_While_Static=false;
break;
}
}
}


foreach($class_rs as $rs){
$T_Str=str_pad('',$rs['level'],"-");
echo $T_Str.$rs['name'];
}


以上就是我的查询和输出代码,我不知这个查询是不是算高效查询,所以我分享出来,让大家给点意见,或者大家分享一下自己的查询和输出方法,让我学习一下,谢谢大家了
...全文
917 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
a373903757 2013-01-13
  • 打赏
  • 举报
回复
问题太简单了?大牛都看不上?算吧,就当散分吧
xuzuning 2013-01-07
  • 打赏
  • 举报
回复
$Prs[]=$My_Prs; 利用堆栈将递归化为循环,代码反而变得隐涩了 由于循环体内的代码量增加,效率应该不比递归强
www_7di_net 2013-01-07
  • 打赏
  • 举报
回复
除非寫的非常離譜,要不然性能影響不大
xBoady 2013-01-07
  • 打赏
  • 举报
回复
一般来讲没啥很大的问题的。

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧