개발! 딱 깔끔하고 센스있게!

PHP 로 mysql 재귀나무에 도달한다 본문

개발 스크랩 메모/PHP

PHP 로 mysql 재귀나무에 도달한다

렉사이 2020. 12. 13. 23:55

나는 한 고객에게 설문지를 만들기 위해 문제를 세 단계별로 조직할 것을 요구하고 있다.

나는 이미 U.I. 하지만 지난 3시간 동안 데이터베이스에서 데이터베이스에서 데이터베이스에서 데이터베이스를 추출해 모든 것을 올바른 위치로 가재해 왔다.

데이터베이스는 고객 조직으로 되어 있어서 제어할 수 없습니다:

id description parentId 1 Level 1 0 2 Level 2 0 3 Level 1a 1 4 Level 1b 1 5 Level 1a1 3 

나는 웹사이트에서 나와 비슷한 문제를 발견하였으나, 내가 이 문제를 해결하려고 시도했을 때, 나는 내선에서 반복했다.

코드:

function makeList($par_id = 0) { //your sql code here $result = mysql_query("SELECT * FROM pB_test WHERE parentId = $par_id"); $pages = mysql_fetch_array( $result ); if (count($pages)) { echo '
    '; foreach ($pages as $page) { echo '
  • ', $page['description']; makeList($page['parentId']); echo '
  • '; } echo '
'; } } makeList();

출력:

1 3 5 5 l l 3 5 5 l l 3 5 5 l l 3 5 5 l l 

이 문제를 어떻게 해결하는지 아는 사람이 있습니까? 문제가 도대체 뭡니까?건배!

대답

동작 실행:

function printChildQuestions($parentid) { $sql="SELECT * FROM pB_test WHERE parentID=$parentid"; $result=mysql_query($sql); $i=0; while (true) { $row=mysql_fetch_array($result); if (!$row) break; if ($i==0) echo "
    "; $i=1; echo '
  • '.$row['id'].' '.$row['description'].' '.$row['parentId'].'
  • '; printChildQuestions($row['id']); } if ($i>0) echo '
'; } printChildQuestions(0);
Comments