Foros del Web » Programando para Internet » PHP »

Menu con Rupturas de Control

Estas en el tema de Menu con Rupturas de Control en el foro de PHP en Foros del Web. Saludos. Tengo una tabla con los siguientes campos: - Id_categoria - Id_padre - Categoria La idea es ir agregando Categorias (Padres) y Categorias (Hijas) e ...
  #1 (permalink)  
Antiguo 27/04/2004, 10:03
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 3 meses
Puntos: 1
Pregunta Menu con Rupturas de Control

Saludos.

Tengo una tabla con los siguientes campos:

- Id_categoria
- Id_padre
- Categoria

La idea es ir agregando Categorias (Padres) y Categorias (Hijas) e incluso Categorias (Nietas)

De modo que el menu quede:

Luces->Interiores->De Techo.

Esto se trabaja en una sola tabla porque no se sabe cuantos sub-diviciones tendra el menu.

Ahora al momento de armar el menu es donde estoy trancado.

Me comentaron que con "Rupturas de Control" lo logro, pero no tengo la mínima idea de eso.

Alguna documentación??

Se supone que "Luces" tiene un Id_Categoria = 1 + Id_padre = 0

"Interiores" tiene un Id_Categoria = 2 + Id_padre = 1

Ya que es Hija de "Luces".

Así queda todo en cadena.

Cómo busco a las Padres e imprimir seguidamente las hijas que tiene y sus nietas, etc, etc.

algo así:

Código PHP:
-> PADRE 1
     Hija 1
     Hija 2
     Hija 3
            Nieta 1
            Nieta 2
-> Padre 2
    Hija 1
             Nieta 1 
Cualquier idea me sería de muchiiiisiiima ayuda.

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.

Última edición por José Molina; 27/04/2004 a las 10:06
  #2 (permalink)  
Antiguo 27/04/2004, 10:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Podrias leer este artículo donde se proponen várias técnicas para resolver el problema.

http://www.sitepoint.com/print/hiera...-data-database

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 27/04/2004, 12:16
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 3 meses
Puntos: 1
Gracias Cluster

Voy a comenzar a golpearme con el código.

Sea lo que sea, les aviso.
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #4 (permalink)  
Antiguo 29/04/2004, 14:37
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 3 meses
Puntos: 1
De acuerdo Solución

Saludos.

Bien el asunto lo resolví de la siguiente manera:

Código PHP:
<?
function display_menu($parent$level) { 
    
$dbn = new DB_Sql;
    
$queryn "SELECT * FROM " TBL_CATEGORIAS " WHERE id_padre='" $parent "' ORDER BY categoria";
    
$resultn $dbn->query($queryn);
    
   
// display each child 
   
while ($row mysql_fetch_array($resultn)) { 
       
// indent and display the title of this child 
       
$mostrar =  str_repeat('  ',$level).$row['categoria']."<br>"

        for (
$ne 0$ne <= $level$ne++) {
            
$esp .= "-";
        }

        
$mostrarf "<option value=".$row['id_categoria'].">".$esp.$mostrar."</option>";

        
$esp "";

        echo 
$mostrarf;
       
// call this function again to display this 
       // child's children 
       
display_menu($row['id_categoria'], $level+1); 
   } 
}
?>

<select>
<? display_menu(0,0); ?>
</select>
No verdad no se si era la forma más "educada" de hacerlo, pero me funciona muy bien.

Ahora el problema lo tengo en armar el menu pero sólo con un grupo de Padre-Hija-Nieta y no todas.

Gracias a Cluster, quien efectivamente me envio al código exacto.
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.

Última edición por José Molina; 29/04/2004 a las 14:44
  #5 (permalink)  
Antiguo 30/04/2004, 06:25
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 3 meses
Puntos: 1
Saludos.

De pana que requiero Help para armar el Menu con un solo grupo de Padre-Hija-Nieta.

Alguien disponible??
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:44.