Hierarquia de categorias em PHP/MySQL
Neste cenário, pretendemos recuperar uma representação hierárquica de categorias e subcategorias de um MySQL banco de dados. Nosso objetivo é estruturar os dados em um formato aninhado que espelhe a hierarquia real dentro do banco de dados.
Para conseguir isso, aproveitamos o modelo de lista de adjacências, que nos permite gerar a hierarquia em uma única passagem. Utilizamos um script PHP para processar os dados e construir a representação hierárquica.
A primeira etapa envolve consultar o banco de dados para recuperar as categorias e subcategorias junto com seus respectivos relacionamentos pai-filho. Depois que os dados são buscados, criamos um array de referências para acesso rápido.
Em seguida, percorremos os dados recuperados e preenchemos o array de referências. Identificamos as categorias raiz (parent_id = 0) e as adicionamos ao array da lista. Para subcategorias, nós os adicionamos como filhos à categoria pai correspondente no array de referências.
Para gerar a saída hierárquica, definimos uma função recursiva, toUL(), que percorre o array de referências e constrói um lista não ordenada HTML aninhada (UL). A função pega um array como entrada e cria um elemento UL.
Dentro da função, iteramos pelo array e criamos um elemento LI (item de lista) para cada categoria. Se a categoria tiver filhos, chamamos recursivamente a função toUL() para construir a subárvore. A função retorna a representação HTML construída da hierarquia.
Este método nos permite representar com eficiência e precisão a hierarquia de categorias em um formato aninhado, que pode ser facilmente renderizado como um documento HTML ou usado para processamento posterior.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3