Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/01/2012, 14:29
reximp
 
Fecha de Ingreso: enero-2012
Mensajes: 5
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Problema con Menu Dinamico PHP y Mysql Hijo

Hola tengo un codigo que encontre en la web de un menu dinamico con 2 niveles, el primer nivel me funciona perfecto, pero no me muestra el sub nivel hijo.
Para hacerlo funcionar hay que incorporar en la pagina los datos de un menu spryhorizontal del dream, con eso ya le da forma.
Vale destacar que si no los incorporo si se ven los menu hijos.
Se me hace que no estoy cerrando bien algun elemento, pero ya de tanto probar me puse tosco, agradeceria si pudieran guiarme en lo que esta mal.


Código PHP:
Ver original
  1. mysql_select_db($dbbase, $conexion);
  2.     $query = "select * from tbl_menu";
  3. $exe = mysql_query($query,$con)or die(mysql_error());
  4. $menu = "<ul id=\"MenuBar1\" class=\"MenuBarHorizontal\">";
  5. while($row_parent = mysql_fetch_array($exe)){
  6.    //$menu .= "<li>".$row_parent['menu']."</li>";
  7.    $query2 ="select * from tbl_sub_menu where idm = '".$row_parent['idm']."'";
  8.    $exe2 = mysql_query($query2,$con)or die(mysql_error());
  9.    $cant = mysql_num_rows($exe2);
  10.    if($cant == 0){
  11.   // $menu .= "<li><a href=\"#\">".$row_parent['menu']."</a></li>";
  12.    }else{
  13.        
  14.    $menu .= "<li><a class=\"MenuBarItemSubmenu\" href=\"#\">".$row_parent['menu']."</a><ul>";
  15.    
  16.       while($row_child = mysql_fetch_array($exe2)){
  17.       $menu .="<li><a  href=\"#\">".$row_child['sub_menu']."</a></li>";
  18.      
  19.       }
  20.   $menu.="</ul>";    
  21.    }
  22. $menu .="</li>";
  23.  
  24.  
  25. }
  26.  
  27.  
  28. echo $menu;


codigo base:

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `tbl_menu` (
  2.   `idm` int(9) NOT NULL AUTO_INCREMENT,
  3.   `menu` varchar(30) NOT NULL,
  4.   `perfil` varchar(9) NOT NULL,
  5.   `estado` varchar(9) NOT NULL,
  6.   PRIMARY KEY (`idm`)
  7. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
  8.  
  9. --
  10. -- Volcar la base de datos para la tabla `tbl_menu`
  11. --
  12.  
  13. INSERT INTO `tbl_menu` (`idm`, `menu`, `perfil`, `estado`) VALUES
  14. (1, 'Menu1', '', ''),
  15. (2, 'menu2', '', '');

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `tbl_sub_menu` (
  2.   `idm` varchar(9) NOT NULL,
  3.   `sub_menu` varchar(30) NOT NULL,
  4.   `perfil` varchar(9) NOT NULL,
  5.   `estado` varchar(9) NOT NULL,
  6.   PRIMARY KEY (`idm`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  8.  
  9. --
  10. -- Volcar la base de datos para la tabla `tbl_sub_menu`
  11. --
  12.  
  13. INSERT INTO `tbl_sub_menu` (`idm`, `sub_menu`, `perfil`, `estado`) VALUES
  14. ('1', 'sub1', '', ''),
  15. ('2', 'sub2', '', '');