![Cómo crear un menú en árbol con PHP y MySQL - Artículos Cómo crear un menú en árbol con PHP y MySQL - Artículos](https://a.laermfeuer.org/articles/como-criar-linhas-curvas-no-photoshop-1.jpg)
Contenido
Un menú en árbol es una representación visual de una lista de elementos, organizados de forma que algunos elementos o categorías, llamados "nodos padres", puedan ser expandidos y mostrar subelementos, llamados "nodos hijos". Usted puede obtener información de una base de datos MySQL y construir un menú en árbol en una página web usando PHP. Su tabla de MySQL debe tener un formato específico que identifique los nodos padres e hijos y las relaciones entre ellos. Cada registro en la tabla será un nodo y podrá crear una jerarquía de varios niveles.
instrucciones
-
Inicie sesión en su base de datos MySQL. Cree una tabla con tres campos: ID de nodo, descripción e ID de nodo padre. Introduzca información en la tabla. Cada ID de nodo debe ser único. Los nodos de nivel superior tienen un identificador de nodo padre 0 y un nodo secundario indica el número de nodo de nivel superior.
-
Abra el archivo HTML en el que desea crear un menú en árbol. Introduzca el cursor donde desea crear el árbol y escriba el siguiente código:
$db = mysql_connect ($nomehost, $usuario, $senha); mysql_select_db ($bancodados);Estas linhas apenas configuram a conexão ao seu banco de dados MySQL. Altere as variáveis PHP pelos valores apropriados para a sua base.
-
Digite o seguinte código:
$result = mysql_query('SELECT * FROM nome_tabela') or die(erro_mysql());
Esta linha faz uma chamada ao banco de dados MySQL, obtém da tabela a informação da estrutura do menu em árvore e a salva em uma variável PHP.
-
Digite o seguinte código:
$menu = Array(); while ($m = mysql_fetch_array($result)) { $menu[] = Array('id'=>$m['id'], 'texto'=>$m['texto'], 'pai'=>$m['idpai']); }
A primeira linha cria uma variável PHP e a inicializa como um array. O laço 'while' percorre os registros da variável $result e os formata para serem usados por uma função PHP.
-
Digite o seguinte código:
function menuarvore($linhas,$idpai=0) { $result = '
- '; foreach ($linhas as $linha) {
A primeira linha cria uma nova função 'menuarvore' que você usará para montar a sua árvore, e usa um ou dois parâmetros. No primeiro lugar, ela toma a informação de um array PHP. O segundo parâmetro é um número inteiro que contém informação sobre os nodos pai na árvore. Se você não indicar um, a função criará a sua própria variável e inicializará o valor em zero.
-
Digite o seguinte código:
if ($linha['idpai'] == $idpai) { $result.= '
- {$linha[texto]}'; foreach ($linha as $r) { if ($r['idpai'] == $r['id']) $children = true; else $children = false; } if ($children = true) $result.= treemenu($linhas,$linha['id']) . ' '; }
-
Digite o seguinte código:
} $result .= ''; return $result; }
Estas linhas fecham o laço 'for' que percorre todas as colunas dos resultados MySQL, adicionam código HTML e retornam a árvore da função. A última linha fecha o bloco de funções 'treemenu'.
-
Digite o seguinte código:
echo menuarvore($menu);
La primera línea llama a la función "menuarvore" y le pasa la información de la base de datos MySQL. A continuación, muestra el árbol en la página web. La segunda línea cierra el bloque de código PHP.
Estas linhas usam sentenças 'if' e laços para percorrer a informação da variável PHP que contém a estrutura do menu em árvore. Se a linha for um pai com um valor ID zero, a função criará um nodo pai. Se a linha for um filho, a função buscará o ID do nodo pai e criará um nodo filho conectado a ele. A função 'treemenu' é chamada recursivamente para verificar cada linha da variável de array PHP.
consejos
- Agregar más campos a la tabla de MySQL si es necesario. Por ejemplo, puede agregar otro campo de texto que contenga los hipervínculos a cada nodo.