php - 从两个 MySQL 查询 PHP 加载菜单和子菜单

标签 php mysql

                      $menu = mysql_query(" query 1");
                      $k = 1;
                      for ($s = 0; $s < mysql_num_rows($menu); $s++) 
                       {
                          $menus= mysql_fetch_assoc($menu);
                          $mainmenu[]=$menus['name'];

                   $submenus=mysql_query("query 2");
                   for ($m = 0; $m < mysql_num_rows($submenus); $m++) 
                     {
               $submenu = mysql_fetch_assoc($submenus);
                $subitem[]=$submenu['name']; 
                 $url=$submenu['url'];  
                   }
                }    


            foreach($mainmenu  as $mains)
                {
             echo '<li class="hasul"><a><span><b>' .$mains.'</b></span></a></li>';
             foreach($subitem as $sub)
                 {
               echo '<ul>';
               echo '<li><a href="md5($url);=request"><span>' .$sub. '</span></a></li>';
               echo '</ul>';
              }
                } 

上面的代码显示了两个加载菜单和子菜单的查询。查询 2 使用查询 1 的一些输入。 菜单确实加载正确,但它们包含相同的菜单项。理想情况下,每个菜单都应该有自己的菜单项。

最佳答案

您的 foreach 中有一个 foreach,这意味着,对于每个主菜单,您都会输出所有子菜单。

子菜单创建一些参数,例如:

$mainmenu = array(
        1 => 'about',
        2 => 'news',
        3 => 'search',
    );

$submenu = array(
        1 => array( 'about my name', 'about my location' ),
        3 => array( 'search me' ),
    );

现在仅检查您需要的子菜单:

if ( is_array( $mainmenu ) )
{
    echo '<ul>';
    foreach( $mainmenu as $key=>$menu )
    {
        echo '<li>'.$menu.'</li>';
        if ( is_array( $submenu[$key]) )
        {
            echo '<ul>';
            foreach( $submenu[$key] as $sub )
            {
                echo '<li>'.$sub.'</li>';
            }
            echo '</ul>';
        }
    }
    echo '</ul>';
}

这将产生:

<ul>
    <li>about</li>
    <ul>
        <li>about my name</li>
        <li>about my location</li>
    </ul>
    <li>news</li>
    <li>search</li>
    <ul>
        <li>search me</li>
    </ul>
</ul>

我希望你能明白。

关于php - 从两个 MySQL 查询 PHP 加载菜单和子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22323716/

相关文章:

PHP编码的烦恼

php - 使用 PDO 语句登录表单 PHP

php - 使用属性从类内部查询 mysql 数据库

PHP - MYSQL 搜索引擎 - 匹配搜索框中单词的特定字母

php - 将多个数据分组

php - 回显前一个函数的返回值

mysql - 如何选择最大值并返回多个条目

php - 在 Windows 7 (XAMPP) 中安装内存缓存

php - MySQL Partitioning Join Table(双PK)

mysql - 如何使用逗号从数据库中选择数据