ホームページ >バックエンド開発 >PHPチュートリアル >再帰的ディレクトリ ツリー、UL LI の適用方法

再帰的ディレクトリ ツリー、UL LI の適用方法

WBOY
WBOYオリジナル
2016-06-23 14:05:43959ブラウズ

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


    25edfb22a4f469ecb59f1190150159c63499910bf9dac5ae3c52d5ede738348580年代5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
    25edfb22a4f469ecb59f1190150159c63499910bf9dac5ae3c52d5ede738348590年代5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
    929d1f5ca49e04fdcb27f9465b944689
    bed06894275b65c1ab86501b08a632eb
    929d1f5ca49e04fdcb27f9465b944689
    bed06894275b65c1ab86501b08a632eb
    25edfb22a4f469ecb59f1190150159c63499910bf9dac5ae3c52d5ede7383485電影5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
    25edfb22a4f469ecb59f1190150159c63499910bf9dac5ae3c52d5ede7383485书籍5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
    929d1f5ca49e04fdcb27f9465b944689


    回复讨论(解决方案)

    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>';  }}

    在ナビゲーション関数内に直接出力されているため、子节点がない場合、会生空の ff6d136ddc5fdfeffaf53ff6ee95f185< ;/ul>
    不过并不影响显示效果

    就是会影响啊 我前端是折叠菜单 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;}

    调用時間
    echo nav($id);

    我都は ajax で自動的に追加されているため、問題はありません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。