ホームページ >バックエンド開発 >PHPチュートリアル >再帰的ディレクトリ ツリー、UL LI の適用方法
function nav($parent){
$sql = mysql_query("select * from menu where parent = '$parent'");
while($row = mysql_fetch_array($sql)){
echo '25edfb22a4f469ecb59f1190150159c624218242af0a6df28d6dcc6f9bc1a1dc'.$row['name']。 '5db79b134e9f6b82c0b36e0489ee08ed';
nav($row['id']);
echo 'bed06894275b65c1ab86501b08a632eb';
}
}
子类要怎么套上UL输出呢?
似たような这样
5cc0fae2bb82c9539c56fed4f41ed0be
25edfb22a4f469ecb59f1190150159c63499910bf9dac5ae3c52d5ede7383485音乐5db79b134e9f6b82c0b36e0489ee08ed
ff6d136ddc5fdfeffaf53ff6ee95f18525edfb22a4f469ecb59f1190150159c63499910bf9dac5ae3c52d5ede7383485流行5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
25edfb22a4f469ecb59f1190150159c63499910bf9dac5ae3c52d5ede7383485经典5db79b134e9f6b82c0b36e0489ee08ed
function nav($parent){ $sql = mysql_query("select * from menu where parent = '$parent'"); while($row = mysql_fetch_array($sql)){ echo '<li><a href="'.$row['id'].'">'.$row['name'].'</a>'; echo '<ul>'; nav($row['id']); echo '</ul>'; echo '</li>'; }}
就是会影响啊 我前端是折叠菜单 UL 表示ブロック的時間就麻烦了
网上找了一夜 中文英文 测试無数 就没有一个完全美的 要么连データベース库封包成类没法用 要么UL適合套错误
要么遍历N次 要么几百行代码 着都笨ゆっくり
不知道大牛们是怎么解决的,就没一完美的办法?
请版主老大ハンドル你常用的代分享下
你边查询边输出,而今你就無法知道当前节点有子节点(因為未读)
所以念要查询結果读到数组 http://bbs.csdn.net /topics/390364669
その後再递归出力
你も可用变量缓存待機出力内容,等递归结終了時点再出力
function nav($parent){ $res = ''; $sql = mysql_query("select * from menu where parent = '$parent'"); while($row = mysql_fetch_array($sql)){ $res .= '<li><a href="'.$row['id'].'">'.$row['name'].'</a>'; $t = nav($row['id']); if(! empty($t)) $res .= "<ul>$t</ul>"; $res .= '</li>'; } return $res;}