Archivo de la categoría: Programación Básica

Imprimir un árbol de categorías en PHP

Cuando estamos creando algún tipo de CMS es costumbre clasificar el contenido por categorías, donde éstas pueden tener hijos, nietos, bisnietos, etc.

Por ejemplo: Nuestra tabla categoría tiene un id, nombre, padre, donde éste último es el id de otra categoría.

tablita

Por lo tanto se nos puede complicar imprimir esa lista correctamente. Para resolver esto podemos hacer una pequeña función:

function sacarHijos($id_padre, $nivel)
{
    $result = mysql_query("SELECT id, nombre, padre FROM categorias WHERE padre=$id_padre");

    if(mysql_num_rows($result))
    {
	$nivel=$nivel.'-----';
	while($d = mysql_fetch_row($result))
	{
	    //Imprimimos arbol de categorías
	    echo $nivel.'> '.$d[1];

	    //Llamamos nuevamente a la función para que imprimas otros hijos
	    sacarHijos($d[0], $nivel);
	}
    }
}

Lógicamente cuando se llame a la función sacarHijos el valor que se le pasa en la variable $nivel puede ser vacío, ejemplo:

//Le decimos a la función que imprima las categorías hijas del padre 00, es decir la raíz.
sacarHijos(00,'');

De esta forma podremos imprimir un árbol o jerarquía de categorías para imprimirla en tablas, lista de opciones menús, etc.