>백엔드 개발 >PHP 튜토리얼 >PHP 개발에서 무제한 분류 기능을 사용하는 방법

PHP 개발에서 무제한 분류 기능을 사용하는 방법

王林
王林원래의
2023-06-25 14:36:151300검색

인터넷의 급속한 발전으로 인해 웹사이트 기능과 요구 사항이 점점 더 복잡해지고 있습니다. 그 중 무한 분류 기능은 정보를 정리하고 관리하는 매우 중요한 방법입니다. 이는 개발자가 정보를 효과적으로 구성하여 사용자가 필요한 것을 더 빨리 찾을 수 있도록 도와줍니다. 오늘은 PHP 개발에서 무제한 분류 기능을 활용하는 방법을 소개하겠습니다.

무제한 분류 기능이 무엇인가요?

기존 분류에서는 각 카테고리에 상위 카테고리가 하나만 있을 수 있고 하위 카테고리가 여러 개 있을 수 있습니다. 그러나 일부 복잡한 시나리오에서는 이 분류 방법이 제한됩니다. 예를 들어, 제품은 여러 브랜드, 여러 분류 그룹, 여러 지역 등에 속할 수 있습니다. 이때 무제한 분류 기능은 더 나은 솔루션을 제공할 수 있습니다.

무제한 분류 기능은 이름에서 알 수 있듯이 등급 제한이 없으며 분류를 자유롭게 결합할 수 있으며 하나의 데이터가 여러 범주에 속할 수 있습니다. 이 기능은 블로그 분류, 상품 분류, 뉴스 분류 등 유연한 데이터 구성이 필요한 시나리오에 적합합니다.

무제한 분류 기능 구현 방법

아래에서는 PHP 개발 시 무제한 분류 기능을 구현하는 방법을 단계별로 소개하겠습니다.

1단계: 데이터베이스 테이블 만들기

데이터베이스 테이블을 만들 때 카테고리 ID, 카테고리 이름, 카테고리 상위 ID라는 세 가지 주요 필드를 고려해야 합니다. 카테고리 ID는 각 카테고리의 고유 식별자이고, 카테고리 이름은 카테고리 정보를 표시하는 데 사용되며, 카테고리 상위 ID는 해당 카테고리의 상위 카테고리 ID를 나타냅니다.

CREATE TABLE 범주 (categories (
id int(11) NOT NULL,
name varchar(100) NOT NULL,
parent_id int(11) NOT NULL,
PRIMARY KEY (id)
);

第二步:插入分类数据

在数据库表中插入分类数据时,可以使用嵌套集合模型的方式,即用左右值描述每个分类层级组织关系,示例如下:

INSERT INTO categories (id, name, parent_id, lft, rgt id int(11) NOT NULL,
name varchar(100) NOT NULL,
parent_id int(11) NOT NULL,
PRIMARY KEY (id)
);

2단계: 범주형 데이터 삽입

범주형 데이터를 데이터베이스 테이블에 삽입할 때 임베딩을 사용할 수 있습니다. 컬렉션 모델을 설정하는 방법은 왼쪽 및 오른쪽 값을 사용하여 각 카테고리 수준의 구성 관계를 설명하는 것입니다. 예는 다음과 같습니다.

INSERT INTO categories (id, 이름, parent_id, lft, rgt) VALUES

(1, '전기 가전제품', 0, 1, 10),

(2, 'TV', 1, 2, 3),

(3, '휴대폰 가전제품', 1, 4, 9),
(4, '스마트폰', 3, 5, 6),

(5, 'Featurephone'', 3, 7, 8);

그 중 lft와 rgt는 카테고리 간의 계층적 관계를 기술하며 하위 카테고리와 상위 카테고리를 재귀적으로 쿼리할 수 있습니다.

3단계: 분류된 데이터 쿼리

분류된 데이터를 쿼리할 때 재귀 쿼리를 사용할 수 있습니다. 예는 다음과 같습니다.

function getCategories($parentId = 0, $level = 0)

{

$sql = 'SELECT * FROM `categories` WHERE `parent_id` = ? ORDER BY `lft` ASC';
$stmt = $pdo->prepare($sql);
$stmt->execute([$parentId]);
$categories = $stmt->fetchAll(PDO::FETCH_ASSOC);

if (!empty($categories)) {
    $level++;
    $categories = array_map(function ($category) use ($level) {
        $category['level'] = $level;
        $category['children'] = getCategories($category['id'], $level);
        return $category;
    }, $categories);
}

return $categories;

}

이 함수에서는 먼저 현재 상위 범주 아래의 모든 하위 범주를 쿼리하고 lvalue를 기준으로 정렬합니다. 그런 다음 자신을 재귀적으로 호출하여 하위 범주의 하위 범주를 쿼리하고 하위 필드에 저장합니다. 마지막으로 범주형 배열이 반환됩니다.

4단계: 범주형 데이터 표시

범주형 데이터를 표시할 때 재귀 순회를 사용할 수 있습니다. 예는 다음과 같습니다.

function showCategories($categories)🎜{🎜
if (!empty($categories)) {
    echo '<ul>';
    foreach ($categories as $category) {
        echo '<li>' . $category['name'] . '</li>';
        if (!empty($category['children'])) {
            showCategories($category['children']);
        }
    }
    echo '</ul>';
}
🎜}🎜🎜이 함수에서는 먼저 다음을 결정합니다. 카테고리 배열이 비어 있는지 여부. 그렇지 않으면 배열을 순회하여 카테고리 이름을 표시합니다. 그런 다음 범주에 하위 범주가 있으면 자신을 재귀적으로 호출하여 하위 범주를 표시합니다. 🎜🎜결론🎜🎜위의 4단계를 통해 무제한 분류 기능을 쉽게 구현할 수 있고, 분류된 데이터를 재귀적으로 표시할 수도 있습니다. 이 기능은 실제 개발, 특히 전자상거래, 뉴스, 블로그 및 기타 시나리오에서 매우 일반적입니다. 이 기사가 PHP 개발자에게 영감을 주고 실제 개발 요구 사항에 더 잘 대처하는 데 도움이 되기를 바랍니다. 🎜

위 내용은 PHP 개발에서 무제한 분류 기능을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.