如何制作子菜单

时间:2015-04-18 08:44:59

标签: php mysql menu submenu

我有下一个数据库:

enter image description here

我有以下功能:

<?php 

$connection = mysql_connect("localhost", "root", "password") or die(mysql_error());
mysql_select_db("database1", $connection) or die(mysql_error());

function loop_array($array = array(), $parent_id = 0)

{
  if (!empty($array[$parent_id])) {
      echo '<ul>';
      foreach ($array[$parent_id] as $items) {
          echo '<li>';
          echo '<a href="?page='.$items['id'].'">'.$items['title'].'</a>';
          loop_array($array, $items['id']);
          echo '</li>';
      }
  }
}

function displays_menus_revised()

{
  $sql = "SELECT * FROM pages";
  $query = mysql_query($sql) or die(mysql_error());
  $array = array();
  if (mysql_num_rows($query)) {
    while ($rows = mysql_fetch_array($query)) {
      $array[$rows['parent_id']][] = $rows;
    }
    loop_array($array);
  }
}

 ?>

我的问题是功能显示左侧图片中的记录。我希望函数显示如右图所示的记录。你能告诉我问题出在哪里吗?我必须改变的是,功能显示如右图所示的记录?感谢。

enter image description here

1 个答案:

答案 0 :(得分:0)

这么好的代码,有这么小的滑动。只缺少结束'ul'。

function loop_array($array = array(), $parent_id = 0)
{
  if (!empty($array[$parent_id])) {
      echo '<ul>';
      foreach ($array[$parent_id] as $items) {
          echo '<li>';
          echo '<a href="?page='.$items['id'].'">'.$items['title'].'</a>';
          loop_array($array, $items['id']);
          echo '</li>';
      }
      echo '</ul>';
  }
}