Foros del Web » Programando para Internet » PHP »

PHP OO Problema con Menu Dinamico PHP y Mysql Hijo

Estas en el tema de Problema con Menu Dinamico PHP y Mysql Hijo en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/01/2012, 14:29
 
Fecha de Ingreso: enero-2012
Mensajes: 5
Antigüedad: 12 años, 10 meses
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', '', '');
  #2 (permalink)  
Antiguo 17/01/2012, 14:51
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 17 años
Puntos: 75
Respuesta: Problema con Menu Dinamico PHP y Mysql Hijo

Primero que todo el link de la conexión no es clara:
Cita:
mysql_select_db($dbbase, $conexion);
$query = "select * from tbl_menu";
$exe = mysql_query($query,$con)or die(mysql_error());
Es $conexion o $con?
Segundo:
Cita:
$menu.="</ul>";
}
$menu .="</li>";
Deberías cerrar tanto el <ul> como el <li> en la misma línea, es decir, fuera del while y dentro del else.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #3 (permalink)  
Antiguo 17/01/2012, 15:23
 
Fecha de Ingreso: enero-2012
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problema con Menu Dinamico PHP y Mysql Hijo

Gracias Lobo, no se si es correcto lo que ise pero me sigue con el mismo.

Código PHP:
Ver original
  1. if($cant == 0){
  2.   // $menu .= "<li><a href=\"#\">".$row_parent['menu']."</a></li>";
  3.    }else{
  4.        
  5.    $menu .= "<li><a class=\"MenuBarItemSubmenu\" href=\"#\">".$row_parent['menu']."</a><ul>";
  6.    
  7.       while($row_child = mysql_fetch_array($exe2)){
  8.       $menu .="<li><a  href=\"#\">".$row_child['sub_menu']."</a></li>";
  9.      
  10.       }
  11.  
  12.    }
  13.  
  14.  $menu.="</ul>";    
  15.    $menu .="</li>";
  16.  
  17.  
  18.  
  19. }
  20.  
  21.  
  22. echo $menu;
  #4 (permalink)  
Antiguo 17/01/2012, 15:26
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 17 años
Puntos: 75
Respuesta: Problema con Menu Dinamico PHP y Mysql Hijo

MALO, debe ser así:

Código PHP:
Ver original
  1. if($cant == 0){
  2.   // $menu .= "<li><a href=\"#\">".$row_parent['menu']."</a></li>";
  3.    }else{
  4.        
  5.    $menu .= "<li><a class=\"MenuBarItemSubmenu\" href=\"#\">".$row_parent['menu']."</a><ul>";
  6.    
  7.       while($row_child = mysql_fetch_array($exe2)){
  8.       $menu .="<li><a  href=\"#\">".$row_child['sub_menu']."</a></li>";
  9.      
  10.       }
  11.  //fuera del while y dentro del else
  12. $menu.="</ul>";    
  13.    $menu .="</li>";
  14.  
  15.    }
  16.  
  17.  
  18.  
  19.  
  20.  
  21. }
  22.  
  23.  
  24. echo $menu;
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #5 (permalink)  
Antiguo 17/01/2012, 15:35
 
Fecha de Ingreso: enero-2012
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problema con Menu Dinamico PHP y Mysql Hijo

Me sigue Fallando, y ya reemplase todo el bloque!!!! probe de muchas formas, si le saco los estilos los lista correctamente.

el spry que anda sin la base, el codigo puro html es:

Código HTML:
Ver original
  1. <ul id="MenuBar2" class="MenuBarHorizontal">
  2.         <li><a class="MenuBarItemSubmenu" href="#">Item 1</a>
  3.           <ul>
  4.             <li><a href="#">Item 1.1</a></li>
  5. </ul>
  6.         </li>
  7.         <li><a href="#">Item 2</a></li>
  8. </ul>

Última edición por reximp; 17/01/2012 a las 15:40

Etiquetas: dinamico, mysql, sql, tabla
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 14:06.