PHP菜单 - 从数据库加载,无法获得正确的结构

时间:2013-02-08 22:13:23

标签: php drop-down-menu

我很难让这个菜单正常工作。

function writeMenu(){ echo "<div id=\"menu\">" <ul id=\"top-link\">"; m("top", "n"); echo "</ul></div>";(对不起,它格式不正确)

    function m($parent,$issub){
      $parentQ = "select * from cdi_menu";//gets menu items from menu table
      $parentResult = mysql_query($parentQ); //runs menu item query and obtains result
      while ($link = mysql_fetch_assoc($parentResult)) {//for each line in the result do the folowing:
        if($parent==$link['PARENT']){//if the next link belongs to this menu item
          echo "\n    <li><a href=\"".$link['LINK']."\">".$link['DISPLAY']."</a></li>";
          if($issub=="n" && $link['HASCHILD']=="y"){//if this menu item is a top menu item
            echo "\n  <li id=\"sub-link\"><ul>";
            m($link['ID'], $links, "y");
            echo "\n  </ul></li>";
          }
        }
      }
    }

    echo writeMenu();

我要做的是将它隐藏在“子链接”ID中(我会使用类,但javascript似乎不会编辑类样式,只是ID)。子链接项目将在父项目上显示。

top引用顶部元素,ID引用数据库中的唯一ID。

谢谢,抱歉,如果它令人困惑。

1 个答案:

答案 0 :(得分:1)

您的功能只有2个参数,但您可以使用3个内部

调用它
m($link['ID'], $links, "y");

$ links是不必要的。

如果你修改查询看起来像这样

会更好
$parentQ = "select * from cdi_menu WHERE parent='$parent'";

所以你不需要第一个if语句,你不会为每个菜单/子菜单多次获取所有行。