q tal
fermar21
Busca en el foro con criterios como
categorias hay vario post que hablan al respecto.
un de los tantos metodos que hablar es uno clasico de estructura una bd , en el sentido una sola tabla con campos como
categorias entonces las categorias padre tiene un id_categoria = a 0 o NULL tu decides, entonces , las categorias hijas tienen como un "puntero" a su padre en id_categoria, entonces segun un hijo podemos ir recorriendo hasta encontrar el padre maximo por decir , o alrevez segun un padre encontrar todos los hijos de este, y asi sucesivamente.
entonces para generar todas las categorias , te pego algunas funciones utilises, no estan muy optimizadas, pero si funcionan ja
Código PHP:
function generar_categorias()
{
// Debemos Selecionar Todas las Categorias
$temp=consulta_sql("SELECT id,nombre FROM `categorias` WHERE `categoria_id` =0 LIMIT 0 , 30");
for($i=0;$i<count($temp);$i++)
{
// Recorremos las Categorias
$temp2=consulta_sql("SELECT nombre FROM `categorias` WHERE `categoria_id` =".$temp[$i]['id']." LIMIT 0 , 30");
for($j=0;$j<count($temp2);$j++)
{
$categorias[$temp[$i]['nombre']][$j]=$temp2[$j]['nombre'];
}
}
return $categorias;
}
PD : la consulta la hago atravez de una funcion consulta_sql :P
y buscar a los padres por recursividad
Código PHP:
function categoria_padre(&$id_inicial,&$datos)
{
// Buscamos Categorias Padres por Recursividad
global $servidor,$usuario,$password,$db;
$sql="SELECT id,nombre,categoria_id FROM `categorias` WHERE `id` =".$id_inicial."";
$mysql = new mysql;
$mysql->datos_conect($servidor,$usuario,$password);
$mysql->connect();
$mysql->select($db);
$select = $mysql->query($sql);
if ( $row = $mysql->f_array( $select ) )
{
// Anotamos el Nombre
$datos[]=$row['nombre'];
// Llamamos Recursivamente
if ( $row['id'] != 0)
{
categoria_padre($row['categoria_id'],$datos);
}
}
}
Pero en general tienen una base de como crear una funcion recursiva, tu puedes crear lo que quieras (ejemplo buscar los hermanos de una categoria (los q tengan el mismo padre pos) etc etc ... formar el arbol entero ,etc ...
En el foro hay muchos post q hablan del tema y varias funciones. tambien en el gran hermano google :P
Saludos