pues el problema es que no me imprime nada.
te explico, mi tabla es:
$tabla = Nombre de la tabla en la DB -->la mia es localización
$id_field = Nombre del campo llave de la tabla --> mi campo es id_localizacion
$show_data = Campo a mostrar en el arbol --> mi campo es localizacion
$link_field= Campo que establece la relacion padre hijo --> mi campo es id_padre
$parent = padre actual creo que en este caso sería el mismo que id_padre pero no esto seguro
$prefix = string con un campo a mostrar en cada entrada del, esto se rellena con un "-"
lo que busco es un select que tenga más de 3 profundidades, aunqeu no sea necesario es por si acaso, que nunca se sabe.
el código que pongo es:
Código PHP:
<?php
require ("conectarbbdd3.php");
?>
<?php
/*
funcion generica
Parametros:
$tabla = Nombre de la tabla en la DB
$id_field = Nombre del campo llave de la tabla
$show_data = Campo a mostrar en el arbol
$link_field= Campo que establece la relacion padre hijo
$parent = padre actual
$prefix = string con un campo a mostrar en cada entrada del arbol
*/
function crearArbol($tabla,$id_field,$show_data,$link_field,$parent,$prefix){
/*Armar query*/
$sql='select * from '.$tabla.' where '.$link_field.'='.$parent;
/*Asumiendo que se usa MySQL (se puede cambiar facilmente a otra db)*/
$rs=@mysql_query($sql);
if($rs){
/*Recorrer todos las entradas */
while($arr=mysql_fetch_array($rs)){
/* Imprimir campo a mostrar*/
echo($prefix.$arr[$show_data].'<br>');
/* imprimir arbol the "hijos" de este elemento*/
crearArbol($tabla,$id_field,$show_data,
$link_field,$arr[$id_field],$prefix.$prefix);
}
}
}
?>
y
Código PHP:
<?php
/*
ahora, asumiendo que se tiene una tabla con una estructura
como la mencionada anteriormente se utilizaria asi:
*/
crearArbol('localizacion','id_localizacion','localizacion','id_padre',0,'-');
/*
lo cual tendra un output algo asi (dependiendo de los datos):
-categoria1
--categoria2
-categoria3
--categoria4
----categoria5
*/
?>
me esta dando este error
Notice: Undefined index: localizacion in c:\easyphp1-8\www\daniel\menuarbol6.php on line 29
la línea 29 es:
echo($prefix.$arr[$show_data].'<br>');
graciass
oskar