Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/12/2011, 12:07
Avatar de edilbertojara
edilbertojara
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 1 mes
Puntos: 0
Pregunta Como se hace Menu con tres subniveles, cargando datos desde BD??

Estoy creando un menu que lee los datos directamente desde una BD, me esta funcionando bien en el primer subnivel, pero el segundo subnivel no me lo esta cargando desde la BD.

Ya revisé otros foros y he logrado llegar hasta este punto, pero aca estoy un poco enredado.

La estructura que tengo es asi (las relaciones están bien):
Tres tablas:
1. menu
2. sub_menu1
3. sub_menu2

Me esta leyendo los datos de las dos primeras (menu y sub_menu1) y carga perfectamente, es decir de cada item de la tabla menu que tiene submenus nivel 1, me los carga muy bien, ... pero por ejemplo si algun item de la tabla sub_menu1 tiene a su vez otros items dependientes(sub_menu2), estos (los de la tabla sub_menu2) no cargan.

El código que tengo es este:

Código PHP:

<?php include ("../administrativo/conexion.php"); ?>
<?php
        $rst_nombre_menu
=mysql_query("SELECT * FROM menu"$conexion);
        
$num_registos=mysql_num_rows($rst_nombre_menu);
        if (
mysql_num_rows ($rst_nombre_menu)==0)
        echo 
"No hay items en el menu Principal";
?>
<?php
        $rst_nombre_sub_menu1
=mysql_query("SELECT * FROM sub_menu1"$conexion);
        
$num_registos=mysql_num_rows($rst_nombre_sub_menu1);
        if (
mysql_num_rows ($rst_nombre_sub_menu1)==0)
        echo 
"No hay items en el SubMenu1";
?>
<?php
        $rst_nombre_sub_menu2
=mysql_query("SELECT * FROM sub_menu2"$conexion);
        
$num_registos=mysql_num_rows($rst_nombre_sub_menu2);
        if (
mysql_num_rows ($rst_nombre_sub_menu2)==0)
        echo 
"No hay items en el SubMenu2";
?>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Primer UL [inicio]--><ul>
<?php while ($fila_nombre_menu=mysql_fetch_array($rst_nombre_menu))    { $id_menu $fila_nombre_menu["id_menu"];?> 
<!-- Primer LI [inicio]--><li>
        <a href=""><?php echo $fila_nombre_menu["id_menu"].$fila_nombre_menu["nombre_menu"]; ?></a>
        <?php $rst_nombre_sub_menu1=mysql_query("SELECT * FROM sub_menu1 WHERE id_menu='$id_menu'");
        if (
mysql_num_rows ($rst_nombre_sub_menu1)==0){ 
        }else{ 
?>
<!-- Segundo UL [inicio]--><ul>
<?php while ($fila_nombre_sub_menu1=mysql_fetch_array($rst_nombre_sub_menu1)){ $id_nombre_sub_menu1 $fila_nombre_sub_menu1["id_sub_menu1"];?> 
<!-- Segundo LI [inicio]--><li>
        <a href=""><?php echo $fila_nombre_sub_menu1 ["id_sub_menu1"].$fila_nombre_sub_menu1 ["nombre_sub_menu1"]?></a>
        <?php $rst_nombre_sub_menu2=mysql_query("SELECT * FROM sub_menu2 WHERE id_menu='$id_sub_menu1'");
        if (
mysql_num_rows ($rst_nombre_sub_menu2)==0){
        }else{ 
?>        
<!-- Tercer UL [inicio]--><ul>
<?php while ($fila_nombre_sub_menu2=mysql_fetch_array($rst_nombre_sub_menu2)) { $id_nombre_sub_menu2 $fila_nombre_sub_menu2["id_sub_menu2"];?> 
<!-- Tercer LI [inicio]--><li>
        <a href=""><?php echo $fila_nombre_sub_menu2["id_sub_menu2"].$fila_nombre_sub_menu2["nombre_sub_menu2"]; ?></a>
        <?php $rst_nombre_sub_menu3=mysql_query("SELECT * FROM sub_menu2 WHERE id_sub_menu2='$id_sub_menu2'");
        if (
mysql_num_rows ($rst_nombre_sub_menu2)==0){
        }else{ 
?>
        <?php ?>
<!-- Tercer LI [termina]--></li>    
        <?php ?>
<!-- Tercer UL [termina]--></ul>
        <?php ?>
<!-- Segundo LI [termina]--></li>
        <?php ?>
<!-- Segundo UL [termina]--></ul>
        <?php ?>
<!-- Primer LI [termina]--></li>
        <?php ?>
<!-- Primer UL [termina]--></ul>
Por favor, me pueden indicar por que no me fuciona?...
... o si hay otra forma de realizarlo, por favor indiquenme
... Gracias!!