MySQL 데이터베이스에서는 Category_id 및 parent_id에 대한 열이 있는 범주라는 테이블에 계층적 데이터를 저장할 수 있습니다. PHP를 사용하여 계층 구조에서 이 데이터를 검색하려면 다음 단계를 따르세요.
데이터베이스에서 데이터 가져오기:
SQL 쿼리를 사용하여 이름순으로 정렬된 모든 카테고리를 가져옵니다:
<code class="php">$sql = "SELECT category_id, parent_id, name FROM categories ORDER BY name"; $result = $pdo->query($sql);</code>
참조 배열 생성:
참조를 저장할 연관 배열 $ref를 생성합니다. 각 카테고리. 각 참조에는 parent_id 및 name 속성이 포함됩니다. 상위 항목이 없는 카테고리(parent_id = 0)의 경우 $list 배열에 추가하세요.
<code class="php">$refs = array(); $list = array(); foreach ($result as $row) { $ref = &$refs[$row['category_id']]; $ref['parent_id'] = $row['parent_id']; $ref['name'] = $row['name']; if ($row['parent_id'] == 0) { $list[$row['category_id']] = &$ref; } else { $refs[$row['parent_id']]['children'][$row['category_id']] = &$ref; } }</code>
중첩 HTML 목록 생성:
$list 배열을 사용하여 중첩된 HTML 목록을 생성하는 재귀 함수 toUL을 만듭니다. 하위 트리를 확인하고 자신을 재귀적으로 호출하여 하위 트리를 구축해야 합니다.
<code class="php">function toUL(array $array) { $html = '<ul>' . PHP_EOL; foreach ($array as $value) { $html .= '<li>' . $value['name']; if (!empty($value['children'])) { $html .= toUL($value['children']); } $html .= '</li>' . PHP_EOL; } $html .= '</ul>' . PHP_EOL; return $html; }</code>
계층 구조 표시:
toUL 함수를 사용하여 생성 계층적 HTML 목록을 표시합니다.
참조 자료에 제공된 "관련 질문" 섹션에서 개체의 배열 레코드 집합에서 중첩된 HTML 목록을 얻는 데 유용한 예를 찾을 수 있습니다.
위 내용은 PHP의 MySQL 데이터베이스에서 중첩된 HTML로 계층적 데이터를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!