本帖最后由 anydy2008 于 2013-01-06 12:07:44 编辑

解决方案 »

  1.   

    参考左右值算法,你可以去google一下。
      

  2.   

    ShadowSniper  好的
       
    我再等等看,你说的算法一下子不是狠好看懂。有个实例应该会上手快一点的
      

  3.   

    参考代码  http://bbs.csdn.net/topics/370094009
      

  4.   

    其实左右值算法不难理解的。
    分类,肯定是个树状结构。我们把每一个节点,都设置一个左值和一个右值                      (1)root(14)
                   /                       \
              (2)a (7)                   (8)b(13)
            /        \                     /        \
     (3)c(4)     (5)d(6)    (9)e(10)       (11) f(12)       当你要获取节点a的子节点时,只需要判断>a的左值<a的右值.就可以得到他的子节点了。而不需要遍历整棵树。那么你在db里面存储时,就按照这个结构来存。并且把left_value和right_value都建立索引。
    my_categorys:
    ---------------
    id    name   left_value   right_value
    1     root     1                14
    2     a          2                7       
    3     b          8                13
    4     c           3                4
    ...sql查a节点的所有子节点:select * from my_categorys where left_value > 2 and right_value < 7。
    就得到了(3)c(4)和(5)d(6)。
      

  5.   

    其实你可以参考CSDN旧版的做法,用ajax来实现,这样邮寄点好处
    1.不必每次都载入所有的分类,因为不是每个人都对每一个节点下的内容感兴趣,既然不会打开就不要载入,节约资源
    2.不管你用不用递归,其实你都要一次性把所有的资源装入内存,我认为不妥,且有点浪费
    因此建议你用ajax配合json来实现,做法简单,而且节约资源.
      

  6.   

    版主  我用了你的测试代码。但觉得不是我想要的那种格式,我想要的就像360buy京东左侧类别导航。<div class="subitem" clstag="homepage|keycount|home2012|0601b">                    <dl class="fore1">                        <dt>                            <a href="http://e.360buy.com/">电子书刊</a>                        </dt>                        <dd><em><a href="http://e.360buy.com/ebook.html">电子书</a></em><em><a href="http://e.360buy.com/network.html">网络原创</a></em><em><a href="http://e.360buy.com/magazine.html">数字杂志</a></em><em><a href="http://e.360buy.com/media.html">多媒体图书</a></em></dd>                    </dl>                    <dl class="fore2">                        <dt>                            <a href="http://music.360buy.com/">数字音乐</a>                        </dt>                        <dd><em><a href="http://music.360buy.com/category_1.html">通俗流行</a></em><em><a href="http://music.360buy.com/category_2.html">古典音乐</a></em><em><a href="http://music.360buy.com/category_3.html">摇滚说唱</a></em><em><a href="http://music.360buy.com/category_4.html">爵士蓝调</a></em><em><a href="http://music.360buy.com/category_5.html">乡村民谣</a></em><em><a href="http://music.360buy.com/category_8.html">有声读物</a></em></dd>                    </dl>                    <dl class="fore3">                        <dt>                            <a href="http://mvd.360buy.com/">音像</a>                        </dt>                        <dd><em><a href="http://mvd.360buy.com/music.html">音乐</a></em><em><a href="http://mvd.360buy.com/movie.html">影视</a></em><em><a href="http://mvd.360buy.com/education.html">教育音像</a></em><em><a href="http://mvd.360buy.com/theme/4053-7.html">游戏</a></em></dd>                    </dl>                    <dl class="fore4">                        <dt>                            文艺                        </dt>                        <dd><em><a href="http://www.360buy.com/products/1713-3258-000.html">小说</a></em><em><a href="http://www.360buy.com/products/1713-3259-000.html">文学</a></em><em><a href="http://www.360buy.com/products/1713-3260-000.html">青春文学</a></em><em><a href="http://www.360buy.com/products/1713-3261-000.html">传记</a></em><em><a href="http://www.360buy.com/products/1713-3262-000.html">艺术</a></em></dd>                    </dl>                    <dl class="fore5">                        <dt>                            人文社科                        </dt>                        <dd><em><a href="http://www.360buy.com/products/1713-3273-000.html">历史</a></em><em><a href="http://www.360buy.com/products/1713-3279-000.html">心理学</a></em><em><a href="http://www.360buy.com/products/1713-3276-000.html">政治/军事</a></em><em><a href="http://www.360buy.com/products/1713-3275-000.html">国学/古籍</a></em><em><a href="http://www.360buy.com/products/1713-3274-000.html">哲学/宗教</a></em><em><a href="http://www.360buy.com/products/1713-3281-000.html">社会科学</a></em></dd>                    </dl>                    <dl class="fore6">                        <dt>                            经管励志                        </dt>                        <dd><em><a href="http://www.360buy.com/products/1713-3264-000.html">经济</a></em><em><a href="http://www.360buy.com/products/1713-3265-000.html">金融与投资</a></em><em><a href="http://www.360buy.com/products/1713-3266-000.html">管理</a></em><em><a href="http://www.360buy.com/products/1713-3267-000.html">励志与成功</a></em></dd>                    </dl>                    <dl class="fore7">                        <dt>                            生活                        </dt>                        <dd><em><a href="http://www.360buy.com/products/1713-3270-000.html">家庭与育儿</a></em><em><a href="http://www.360buy.com/products/1713-3271-000.html">旅游/地图</a></em><em><a href="http://www.360buy.com/products/1713-9278-000.html">烹饪/美食</a></em><em><a href="http://www.360buy.com/products/1713-9291-000.html">时尚/美妆</a></em><em><a href="http://www.360buy.com/products/1713-9301-000.html">家居</a></em><em><a href="http://www.360buy.com/products/1713-9309-000.html">婚恋与两性</a></em><em><a href="http://www.360buy.com/products/1713-9314-000.html">娱乐/休闲</a></em><em><a href="http://www.360buy.com/products/1713-3269-000.html">健身与保健</a></em><em><a href="http://www.360buy.com/products/1713-3272-000.html">动漫/幽默</a></em><em><a href="http://www.360buy.com/products/1713-3288-000.html">体育/运动</a></em></dd>                    </dl>                    <dl class="fore8">                        <dt>                            科技                        </dt>                        <dd><em><a href="http://www.360buy.com/products/1713-9340-000.html">科普</a></em><em><a href="http://www.360buy.com/products/1713-3287-000.html">IT</a></em><em><a href="http://www.360buy.com/products/1713-3284-000.html">建筑</a></em><em><a href="http://www.360buy.com/products/1713-3285-000.html">医学</a></em><em><a href="http://www.360buy.com/products/1713-3282-000.html">工业技术</a></em><em><a href="http://www.360buy.com/products/1713-9351-000.html">电子/通信</a></em><em><a href="http://www.360buy.com/products/1713-9368-000.html">农林</a></em><em><a href="http://www.360buy.com/products/1713-3286-000.html">科学与自然</a></em></dd>                    </dl>                    <dl class="fore9">                        <dt>                            少儿                        </dt>                        <dd><em><a href="http://www.360buy.com/products/1713-3263-000.html">少儿</a></em><em><a href="http://www.360buy.com/children/3402.html">0-2岁</a></em><em><a href="http://www.360buy.com/children/3403.html">3-6岁</a></em><em><a href="http://www.360buy.com/children/3404.html">7-10岁</a></em><em><a href="http://www.360buy.com/children/3405.html">11-14岁</a></em></dd>                    </dl>                    <dl class="fore10">                        <dt>                            教育                        </dt>                        <dd><em><a href="http://www.360buy.com/products/1713-3289-000.html">教材教辅</a></em><em><a href="http://www.360buy.com/products/1713-3290-000.html">考试</a></em><em><a href="http://www.360buy.com/products/1713-3291-000.html">外语学习</a></em></dd>                    </dl>                    <dl class="fore11">                        <dt>                            其它                        </dt>                        <dd><em><a href="http://www.360buy.com/products/1713-4855-000.html">英文原版书</a></em><em><a href="http://www.360buy.com/products/1713-6929-000.html">港台图书</a></em><em><a href="http://www.360buy.com/products/1713-3294-000.html">工具书</a></em><em><a href="http://www.360buy.com/products/1713-3296-000.html">套装书</a></em><em><a href="http://www.360buy.com/products/1713-4758-000.html">杂志/期刊</a></em></dd>                    </dl>                </div>
    循环大类(dt),然后当中再循环小类(dd)的一个四维数组。
    请求写一个给我研究一下,就和我递归输出的那个结果一样;谢谢了!
      

  7.   

    代码没格式好 再发一下。<div class="subitem" clstag="homepage|keycount|home2012|0601b">
        <dl class="fore1">
            <dt>
                <a href="http://e.360buy.com/">
                    电子书刊
                </a>
            </dt>
            <dd>
                <em>
                    <a href="http://e.360buy.com/ebook.html">
                        电子书
                    </a>
                </em>
                <em>
                    <a href="http://e.360buy.com/network.html">
                        网络原创
                    </a>
                </em>
                <em>
                    <a href="http://e.360buy.com/magazine.html">
                        数字杂志
                    </a>
                </em>
                <em>
                    <a href="http://e.360buy.com/media.html">
                        多媒体图书
                    </a>
                </em>
            </dd>
        </dl>
        <dl class="fore2">
            <dt>
                <a href="http://music.360buy.com/">
                    数字音乐
                </a>
            </dt>
            <dd>
                <em>
                    <a href="http://music.360buy.com/category_1.html">
                        通俗流行
                    </a>
                </em>
                <em>
                    <a href="http://music.360buy.com/category_2.html">
                        古典音乐
                    </a>
                </em>
                <em>
                    <a href="http://music.360buy.com/category_3.html">
                        摇滚说唱
                    </a>
                </em>
                <em>
                    <a href="http://music.360buy.com/category_4.html">
                        爵士蓝调
                    </a>
                </em>
                <em>
                    <a href="http://music.360buy.com/category_5.html">
                        乡村民谣
                    </a>
                </em>
                <em>
                    <a href="http://music.360buy.com/category_8.html">
                        有声读物
                    </a>
                </em>
            </dd>
        </dl>
        <dl class="fore3">
            <dt>
                <a href="http://mvd.360buy.com/">
                    音像
                </a>
            </dt>
            <dd>
                <em>
                    <a href="http://mvd.360buy.com/music.html">
                        音乐
                    </a>
                </em>
                <em>
                    <a href="http://mvd.360buy.com/movie.html">
                        影视
                    </a>
                </em>
                <em>
                    <a href="http://mvd.360buy.com/education.html">
                        教育音像
                    </a>
                </em>
                <em>
                    <a href="http://mvd.360buy.com/theme/4053-7.html">
                        游戏
                    </a>
                </em>
            </dd>
        </dl>
    </div>
      

  8.   

    ShadowSniper  谢谢你的建议  我会找时间探索一下的