0

У меня есть один бит с двумя таблицами для элементов главного меню и элементов подменю. Я пытался реализовать динамическое меню с созданной мной начальной загрузкой, но я не могу понять, как объединить PHP с HTML. Каждый учебник рассказывает о массиве, но это не кажется разумным с тем, как (код) тяжелая тема загрузки может получить. Я хотел бы иметь возможность сделать это, если кто-то может указать мне в правильном направлении, но первым препятствием, которое мне нужно преодолеть, является основное меню, которое не отображается с кодом, который я опубликовал. Любая помощь будет принята с благодарностью, заблаговременно.динамическое многоуровневое меню начальной загрузки с pdo и mysql

 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> 

ответ

0

Попробуйте это:

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

Нет, до сих пор не работает. Я получаю это в своих сообщениях об ошибках: ожидает как минимум 2 параметра, 0 задано – Danimal

+0

дает полное сообщение об ошибке –

+0

Это было полное сообщение об ошибке. Я использовал сценарий @ для отображения любых ошибок во время производства, и это то, что он мне говорит. Похоже, что подготовленное заявление нуждается в двух параметрах, но я уверен, что у меня есть хотя бы один (да ... я ноот). – Danimal

Смежные вопросы