【问题标题】:dynamic multilevel bootstrap menu with pdo and mysql带有 pdo 和 mysql 的动态多级引导菜单
【发布时间】:2016-02-03 12:20:27
【问题描述】:

我有一个带有 2 个表的数据库,用于主菜单项和子菜单项。我试图用我制作的引导主题实现一个动态菜单,但我似乎无法理解如何将 PHP 与 HTML 合并。每个教程都在讨论数组,但这对于(代码)沉重的引导主题如何变得不合理。如果有人能指出我正确的方向,我希望能够做到这一点,但我需要克服的第一个障碍是主菜单没有显示我发布的代码。任何帮助将不胜感激,在此先感谢您。

      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 mysql twitter-bootstrap pdo content-management-system


    【解决方案1】:

    试试这个:

    <?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>
    

    【讨论】:

    • 不,仍然无法正常工作。我在我的错误消息中得到了这个:需要至少 2 个参数,给定 0
    • 这是完整的错误信息。我使用@脚本来显示生产过程中的任何错误,这就是它告诉我的。似乎准备好的语句需要两个参数,但我确定其中至少有一个(是的......我是菜鸟)。
    • 哪一行出错是选择menusub menu
    猜你喜欢
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2022-01-21
    • 1970-01-01
    • 2012-03-27
    相关资源
    最近更新 更多