Maison  >  Article  >  base de données  >  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
Linda Hamiltonoriginal
2024-10-24 02:32:29511parcourir

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>
  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>
  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>
  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!

Déclaration:
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