2013-02-08 2 views
0

이 메뉴가 제대로 작동하는 데 어려움을 겪고 있습니다.PHP 메뉴 - 데이터베이스에서 로딩 중, 구조체를 올바르게 가져올 수 없습니다.

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(); 

가 난 할 노력하고있어 (I 클래스를 사용하는 것이 내가 '하위 링크'ID를 숨길 수있는 곳을 만드는 것입니다 (죄송합니다, 제대로 포맷 할 것입니다)하지만, javascript는 클래스 스타일을 편집하는 것 같지 않은데, ID 만). 하위 링크 항목은 상위 항목보다 위에 표시됩니다.

top은 최상위 요소를 나타내며 ID은 데이터베이스의 고유 ID를 나타냅니다.

죄송합니다. 혼란스러워서 죄송합니다.

+0

mysql_ *을 사용하지 마십시오. PDO와 MySQLi를 살펴보십시오. 또한 jQuery와 같은 JavaScript 라이브러리를 사용하십시오. 그런 방식으로 수업을 선택할 수 있습니다. –

+0

또한 데이터베이스 테이블의 구조는 무엇입니까? 열과 값을 알지 못하면이 문제를 해결하는 것이 어렵습니다. –

+0

ID, PARENT, LINK, DISPLAY, HASCHILD는 구조체입니다. 그 중 2 개를 살펴 보겠습니다. –

답변

1

귀하의 기능은이 매개 변수가 있지만, 당신은 불필요

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

$ 링크 안쪽에 3을 호출합니다.

당신은 너무 당신은 if 문 첫째하지 않아도이

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

처럼 보이도록 쿼리를 수정하고 각 메뉴/하위 메뉴에 대한 모든 행을 여러 번 가져 오는하지 않을 경우 그것은 더 좋을 것이다.

+0

나는 그것을 꺼내고 $ parentQ를 변경했습니다. 그것이하고있는 일은 상위 3 개 링크를 뽑아내는 것이고, 마우스 오버시에는 하위 링크를 보이거나 숨길 수 있습니다. 그것은 현재 첫 번째 최상위 링크 –

+0

에서 집합을 보여줍니다.이'if ($ issub == "n"&& $ link [ 'HASCHILD'] == "y")'문이 실패 함을 의미합니다. 첫 번째 조건은 분명히 사실이므로 데이터베이스에있는 haschild의 값을 다시 확인하십시오. – Gustek

관련 문제