개발 스크랩 메모/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);