Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/01/2008, 02:29
jaromero
 
Fecha de Ingreso: enero-2008
Ubicación: Sevilla
Mensajes: 22
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: creando una lista de datos padre, hijos y nietos con mysql

Cita:
Iniciado por sumolari Ver Mensaje
OK, ya la he encontrado.

Gracias.

EDITO:

No logro que funcione. Ya hice una prueba con algo similar, obteniendo el mismo resultado.
Lo que ocurre es que repite siempre la categoría 1 hasta que se reinicia la conexión con el servidor.
Código PHP:
function crearArbol(){
    include(
'config.php');
    
// Configuración general de la función
    
$tabla 'categories';
    
$id_field 'id';
    
$show_data 'name';
    
$link_field 'parent';
    
$parant '0';
    
$prefix '-';
    
$sql="SELECT * FROM $tabla WHERE $link_field = $parant";
    
$rs = @mysql_query($sql);
    if(
$rs){
        while(
$arr mysql_fetch_array($rs)){
            echo(
$prefix.$arr[$show_data].'<br>');
            
crearArbol();
        }
    }
    
mysql_close($conn['connection_step1']);

Esto creo que te pasa porque la función crearArbol que muestras siempre va al mismo primer nodo...

yo crearía dos funciones:

1) CrearArbol tal cual la tienes
2) MostrarSubArbol($nodo) de forma que tu while quedara como
while($arr = mysql_fetch_array($rs)){
echo($prefix.$arr[$show_data].'<br>');
MostrarSubArbol($prefix.$arr[$show_data]);
de forma que fuera similar a la crearArbol pero tomando como raíz el nodo que le pases por argumento y como condición de finalización que el nodo a consultar no tuviera hojas. Mientras tenga, vas llamándola recursivamente. El orden en que quieras hacerlo (inorden, postorden, preorden) ya es cosa tuya.

No sé si te queda claro, si no, dímelo e intento aclarártelo.

Saludos