PHP+Mysql無限極歸類高效查詢

來源:互聯網
上載者:User
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');
$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'];
}


以上就是我的查詢和輸出代碼,我不知這個查詢是不是算高效查詢,所以我分享出來,讓大家給點意見,或者大家分享一下自己的查詢和輸出方法,讓我學習一下,謝謝大家了 mysql php


------解決方案--------------------
一般來講沒啥很大的問題的。
------解決方案--------------------
除非寫的非常離譜,要不然效能影響不大
------解決方案--------------------
$Prs[]=$My_Prs;
利用堆棧將遞迴化為迴圈,代碼反而變得隱澀了
由於迴圈體內的代碼量增加,效率應該不比遞迴強
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.