Maison > base de données > tutoriel mysql > Comment récupérer des données hiérarchiques d'une base de données MySQL en PHP au format HTML imbriqué ?

Comment récupérer des données hiérarchiques d'une base de données MySQL en PHP au format HTML imbriqué ?

Linda Hamilton
Libérer: 2024-10-24 02:32:29
original
610 Les gens l'ont consulté

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

Récupération de la hiérarchie des catégories en PHP

Dans une base de données MySQL, vous pouvez stocker des données hiérarchiques dans une table nommée catégories avec des colonnes pourcategory_id et parent_id. Pour récupérer ces données dans une structure hiérarchique à l'aide de PHP, suivez ces étapes :

  1. Récupérer les données de la base de données :

    Utilisez une requête SQL pour récupérer toutes les catégories classées par leurs noms :

    <code class="php">$sql = "SELECT category_id, parent_id, name FROM categories ORDER BY name";
    $result = $pdo->query($sql);</code>
    Copier après la connexion
  2. Créer un tableau de référence :

    Créer un tableau associatif $refs qui stockera les références à chaque catégorie. Chaque référence contiendra les propriétés parent_id et name. Pour les catégories sans parent (parent_id = 0), ajoutez-les au tableau $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>
    Copier après la connexion
  3. Générer une liste HTML imbriquée :

    Créez une fonction récursive toUL pour générer une liste HTML imbriquée à l'aide du tableau $list. Il doit rechercher des enfants et s'appeler de manière récursive pour créer des sous-arbres.

    <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>
    Copier après la connexion
  4. Afficher la hiérarchie :

    Utilisez la fonction toUL pour générer et affichez la liste HTML hiérarchique.

Vous pouvez trouver un exemple utile sur l'obtention d'une liste HTML imbriquée à partir du jeu d'enregistrements de tableau d'un objet dans la section « Question connexe » fournie dans le document de référence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal