2014-06-23 1 views
0

기본적 I는 MYSQLPHP I 상위 ID에 기초하여 하위 메뉴와 메뉴 구조를 출력하는 메뉴를 생성 할

Name ID  Parent 
Bob  321 root 
Sue  32  root 
Boo  393 32 
Geek 72  393 
Sam  312 393 
Tovoc 341 321 
Reese 322 393 
Sheep 811 341 

의 테이블을 계층 메뉴 구조를 생성

그래서 출력해야

Bob 
Tovoc 
    Sheep 

Sue 
Boo 
Sam 
    Geek 
Reese 

하위 항목은 상위 ID와 연결되어 있고 부모 항목이있는 경우 하위 항목이됩니다. 궁극적으로 다차원 배열을 구축합니다. 단서?

내가 지금까지 무엇을 얻었는지 Heres. 그것은 작동하지만, 좋은 구조보기를 얻으려면 여백 스타일을 올바르게 늘리거나 재설정하는 방법을 알 수 없습니다. 나는 부모가 나는 당신의 $if++ 이해하지 못하는 사용자

isparent(user,1); 

    function isparent($Parent,$if=1){ 

    $stdr = 'SELECT * FROM CraveBins WHERE UserID = '.$_SESSION[CraveUserID].' AND Parent=\''.$Parent.'\' ORDER BY Name ASC'; 
$resultMainMenu = mysql_query($stdr) or die('421 '.$stdr.mysql_error()); 
if(mysql_num_rows($resultMainMenu)){ 
while($row = mysql_fetch_array($resultMainMenu)){ 
$if++; 
echo '<div class="binDir" onclick="setBin(this)" id="BinListUser" style="margin-left:'.(5+($if * 10)).'px" driID="'.$row[ID].'">'.$row['Name'].'</div>'; // echo main menu 
$n = isparent($row['ID'],$if); 
}//end while 
}else{ 
$if=1; 
} // if rows   
}//end function 
+1

단서 1 번 : [선택] (http://en.wikipedia.org/wiki/Select_%28SQL%29) –

+1

DB에서 정보를 가져 오는 중 어떤 부분에 문제가 있습니까? 형성 및 적절한 데이터 구조? HTML 출력? 그것이 그대로 서이 질문은 너무 광범위합니다. 당신은 또한 당신이 시도한 것을 보여줘야합니다. –

+0

나는 그것을 해결했다고 생각한다. 하지만 이제는 다른 하위 메뉴에서 하위 메뉴를 알려주는 방법을 찾아야합니다. –

답변

0

인 경우 1로 다시 재설정, 발견 된 모든 자식 요소에서 10px로 여백 왼쪽의 증가가 있습니다. 나는 이것이 당신의 들여 쓰기 수준이라고 생각했습니다. 그렇다면 : $if++을 제거하고 isparent($row['ID'],$if+1) 내부를 수정하면 괜찮을 것입니다.

또는 while 루프 외부에서 $if++를 이동, 또한 (전 O)

을 : 당신이 mysql_num_rows(...) 필요하지 않습니다, 저는 믿습니다. 가져 오기를 시작하면 완료되면 아무 것도 반환하지 않습니다. 또한 mysql_ *을 사용하지 말고 mysqli 또는 pdo를 사용하십시오.

$if이 어린이를 센다면, 그냥 $n으로 전화하십시오. 깊이와 수를 섞지 마십시오.

관련 문제