> 데이터 베이스 > MySQL 튜토리얼 > PHP의 MySQL 데이터베이스에서 중첩된 HTML로 계층적 데이터를 검색하는 방법은 무엇입니까?

PHP의 MySQL 데이터베이스에서 중첩된 HTML로 계층적 데이터를 검색하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-24 02:32:29
원래의
603명이 탐색했습니다.

How to Retrieve Hierarchical Data from a MySQL Database in PHP as Nested HTML?

PHP에서 범주 계층 검색

MySQL 데이터베이스에서는 Category_id 및 parent_id에 대한 열이 있는 범주라는 테이블에 계층적 데이터를 저장할 수 있습니다. PHP를 사용하여 계층 구조에서 이 데이터를 검색하려면 다음 단계를 따르세요.

  1. 데이터베이스에서 데이터 가져오기:

    SQL 쿼리를 사용하여 이름순으로 정렬된 모든 카테고리를 가져옵니다:

    <code class="php">$sql = "SELECT category_id, parent_id, name FROM categories ORDER BY name";
    $result = $pdo->query($sql);</code>
    로그인 후 복사
  2. 참조 배열 생성:

    참조를 저장할 연관 배열 $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>
    로그인 후 복사
  3. 중첩 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>
    로그인 후 복사
  4. 계층 구조 표시:

    toUL 함수를 사용하여 생성 계층적 HTML 목록을 표시합니다.

참조 자료에 제공된 "관련 질문" 섹션에서 개체의 배열 레코드 집합에서 중첩된 HTML 목록을 얻는 데 유용한 예를 찾을 수 있습니다.

위 내용은 PHP의 MySQL 데이터베이스에서 중첩된 HTML로 계층적 데이터를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿