php - 带 pdo 和 mysql 的动态多级 Bootstrap 菜单

标签 php mysql twitter-bootstrap pdo content-management-system

我有一个数据库,其中有两个表用于主菜单项和子菜单项。我试图用我制作的 Bootstrap 主题实现一个动态菜单,但我似乎不明白如何将 PHP 与 HTML 合并。每个教程都讨论数组,但这对于 Bootstrap 主题的(代码)重量来说似乎并不合理。如果有人能指出我正确的方向,我希望能够做到这一点,但我需要克服的第一个障碍是主菜单未显示我发布的代码。任何帮助将不胜感激,提前谢谢您。

      catch(PDOException $e) { 
       echo $e->getMessage(); 
  }   
       $sql = "SELECT * FROM menu ORDER BY id";
       $stmt = $pdo->prepare($sql);
       $stmt->execute();
 ?>
                        <ul>
                        <?php
                    while ($row = $sth->fetch(PDO::FETCH_OBJ)){
                        $sub_sql = "SELECT * FROM sub_menu WHERE sub_parent_id=:id";
                        $sub_stmt = $pdo->prepare($sub_sql); 
                        $sub_stmt->bindParam(':id', $row->id, PDO::PARAM_INT);
                        $sub_stmt->execute();                   
                        ?>
                        <li><a href="<?php echo $row->menu_name; ?>"></a>
                        <?php
                        if($sub_stmt->rowCount()){
                          ?>
                            <ul>
                            <?php
                             while ($sub_row = $sub_stmt->fetch(PDO::FETCH_OBJ)){
                          ?>
                          <li><a href="<?php echo $sub_row->href; ?>">
                          <?php echo $sub_row->sub_name; ?>"
                          </a></li>
                          <?php
                             }
                             ?>
                        </ul>
                        <?php
                        }
                        ?>
                        <?php
                    }
                    ?>

                  </li>  
                 </ul> 

最佳答案

试试这个:

<?php
catch(PDOException $e) {
    echo $e->getMessage();
}
    $sql = "SELECT * FROM menu ORDER BY id";
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
 ?>
    <ul>
    <?php
    while ($row = $sth->fetch(PDO::FETCH_OBJ)){
        $sub_sql = "SELECT * FROM sub_menu WHERE sub_parent_id=:id";
        $sub_stmt = $pdo->prepare($sub_sql);
        $sub_stmt->bindParam(':id', $row->id, PDO::PARAM_INT);
        $sub_stmt->execute();
        ?>
        <li><a href="<?php echo $row->menu_name; ?>"></a>
            <?php
            if($sub_stmt->rowCount()){
            ?>
                <ul>
                <?php
                    while ($sub_row = $sub_stmt->fetch(PDO::FETCH_OBJ)){
                ?>
                    <li><a href="<?php echo $sub_row->href; ?>">
                        <?php echo $sub_row->sub_name; ?>"
                    </a></li>
                <?php
                    }
                ?>
                </ul>
            <?php
            }
            ?>
        </li>
    <?php
        }
    ?>
</ul>

关于php - 带 pdo 和 mysql 的动态多级 Bootstrap 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35176932/

相关文章:

PHP从数据库中选择随机ID

PHP 类使用与特征函数相同的名称

php - 如何将日期格式 yyyy-mm-dd 更改为 dd-mm-yyyy

html - 如何将堆叠图标添加到 anchor 链接

php - PDO 插入数组值

php - 如何在 Magento 中的任何图像上使用自适应调整大小?

php - 将数据插入数据库

php - 如何从表格底部选择

html - Bootstrap 3 响应容器宽度而不是屏幕宽度

javascript - Bootstrap 下拉菜单在移动设备上单击链接之前折叠