Ver Mensaje Individual
  #5 (permalink)  
Antiguo 29/03/2007, 08:32
oskar_calvo
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: crear un arbol de categorías con checkbox o con un select.

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