php - 如何使用 php 和 mysql 创建带有子菜单的动态菜单

标签 php mysql

我想要一个动态菜单,可以使用 php 和 mysql 从表中获取数据。

我的表格如下所示:

sec_id  sec_name    sec_group
1   section 1   group 1
2   section 2   group 1
3   section 3   group 2
4   section 4   group 1
5   section 5   group 3

我可以执行查询来获取并显示唯一的 sec_group 值,但无法找到将 sec_name 包含到每个 sec_group 中的方法

//Query by unique sec_group
$qry_secs="SELECT DISTINCT sec_group FROM tbl_user_sec ORDER BY sec_id ASC";
$result_secs = mysql_query($qry_secs);

//echo values
while($row_secs = mysql_fetch_assoc($result_secs)){
 echo '<ul><li><a href="#">'.$row_secs['sec_group'].'</a></li></ul>';
}

最终,HTML 应该像下面的代码一样。

<ul>
<li><a href="#">Group 1</a>
  <ul>
  <li><a href="#">Section 1</a></li>
  <li><a href="#">Section 2</a></li>
  <li><a href="#">Section 4</a></li>
  </ul>
</li>

<li><a href="#">Group 2</a>
  <ul>
  <li><a href="#">Section 3</a></li>
  </ul>
</li>

<li><a href="#">Group 3</a>
  <ul>
  <li><a href="#">Section 5</a></li>
  </ul>
</li>
</ul>

有什么想法吗?

最佳答案

$q = mysql_query("SELECT sec_id, sec_name, sec_group FROM tbl_user_sec ORDER BY sec_id");

// prepare data 
$groups = Array();
while($w = mysql_fetch_assoc($q)) {
  if(!isset($groups[$w['sec_group']])) $groups[$w['sec_group']] = Array();
  $groups[$w['sec_group']][] = $w;
}

// display data
echo "<ul>";
foreach($groups as $group_name => $sections) {
  echo '<li><a href="#">'.$group_name.'</a><ul>';
  foreach($sections as $section) {
    echo '<li><a href="#">'.$section['sec_name'].'</a>';
  }
  echo '</ul></li>';
}
echo "</ul>";

another solution如果您不关心按 sec_id

对结果进行排序

关于php - 如何使用 php 和 mysql 创建带有子菜单的动态菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12239995/

相关文章:

php - MySQL 返回 2 行,仅显示 1 行内容

MySQL 能源系统建模数据库 EAV 设计

php - Laravel:无法在 Blade 中使用 Carbon diffForHumans

php - symfony2 从身份验证中跳过 url

php - 在 MySQL 中搜索具有多个标签或 'Select all exept' 的 Tagtable

mysql - 无法打开共享库 '/usr/lib/mysql/plugin/ha_cassandra.so'

php - CakePHP 查询返回不同的结果然后直接在 sql 中运行

javascript - php javascript - 如何突出显示最低值

php - Laravel:用 eloquent 获取最常用的单词

php - 使用php脚本在Android应用程序中上传图像