douzi1350 2012-08-11 05:25
浏览 25
已采纳

循环嵌套菜单

I have a table for a menu like below (see the HTML section):

http://jsfiddle.net/6YZzb/

I want to convert the data to a looping nested menu. I want it to be like:

http://jsfiddle.net/aRSsZ/

This outputs it as HTML:

<ul>
    <?php echo $renderProductMenuItemLv1; ?>
</ul>​

and the relevant PHP code:

if($result = $mysqli->query("SELECT * FROM myTable WHERE type='Business_Line_Product_Level_1' AND parent='37' ORDER BY order_id ASC"))
{
    while($row = $result->fetch_array())
    {
        $productLv1Title = $row["title"];
        $productLv1Body = $row["body"];
        $productLv1OriId = $row["id"];

        if($result2 = $mysqli->query("SELECT * FROM page WHERE type='Business_Line_Product_Level_2' AND parent='$productLv1OriId' ORDER BY order_id ASC"))
        {
            while($row = $result2->fetch_array())
            {        
                $productLv2Title = $row["title"];
                $productLv2Body = $row["body"];
                $productLv2OriId = $row["id"];

                $renderProductMenuItemLv2 .= '
                <li>
                    <a href="businessLineProductLv2.php?p='. $productLv2Id .'">
                        '. $productLv2Title .'
                    </a>
                </li>
                ';
            } // eof while row
        } // eof if result

        $renderProductMenuItemLv1 .= '
        <li>
            <a href="businessLineProductLv1.php?p='. $productLv1Id .'">
                '. $productLv1Title .'
            </a>
            <ul>
                '. $renderProductMenuItemLv2 .'
            </ul>
        </li>
        ';
    } // eof while row
} // eof if result
$result->free_result();

​ But the result is I get additional sub menu items on every menu item.

How can I fix my code?

  • 写回答

1条回答 默认 最新

  • douxi1968 2012-08-11 05:46
    关注

    It seems that you might always be appending to $renderProductMenuItemLv2 when you actually need to reset the string with every iteration of the outer loop. Maybe all you need is a

    $renderProductMenuItemLv2 = '';
    

    above the line if($result2 = $mysqli->query("SELECT * FROM page ... ?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图