Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/07/2013, 07:51
Avatar de shake2427
shake2427
 
Fecha de Ingreso: julio-2011
Mensajes: 116
Antigüedad: 12 años, 9 meses
Puntos: 3
menu dinamico en php

buenos dias
por favor necesito ayuda con un menu dinamico que estoy tratando de hacer pero no logro hacer que me cuadre

Código BD:
Ver original
  1. CREATE TABLE IF NOT EXISTS `menu` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `menu_nombre` varchar(25) NOT NULL,
  4.   `id_padre` int(11) NOT NULL,
  5.   PRIMARY KEY (`id`)
  6. ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
  7.  
  8. --
  9. -- Volcado de datos para la tabla `menu`
  10. --
  11.  
  12. INSERT INTO `menu` (`id`, `menu_nombre`, `id_padre`) VALUES
  13. (1, 'Home', 0),
  14. (2, 'home1', 1),
  15. (3, 'home2', 1),
  16. (4, 'home3', 1),
  17. (5, 'Productos', 0),
  18. (6, 'productos1', 5),
  19. (7, 'productos2', 5),
  20. (8, 'productos3', 5),
  21. (9, 'productosub1-1', 6),
  22. (10, 'productosub1-2', 6);

tengo el siguiente codigo php

Código PHP:
Ver original
  1. function con(){
  2.     $conexion = mysql_connect( "localhost" , "root" , "root")or die ( mysql_error() );
  3.     mysql_select_db( "menu2" , $conexion );
  4.     return $conexion;
  5. }
  6.  
  7. function menu( $id_padre = 0 ){    
  8.          $menu = '';
  9.          $sql = "SELECT * FROM menu WHERE id_padre = $id_padre";    
  10.          $query = mysql_query( $sql,con() );  
  11.          $cant = mysql_num_rows( $query );          
  12.          if( $cant > 0 ){ $menu .= '<ul>'; }            
  13.          while( $resultado = mysql_fetch_assoc( $query ) ){              
  14.             $menu .=  '<li>' . $resultado['menu_nombre'];
  15.             $menu .= menu( $resultado['id'] ) . '</li>';              
  16.          }        
  17.          if( $cant > 0 ){ $menu .= '</ul>'; }      
  18.          return $menu;
  19. }
  20.  
  21. $menu = menu();
  22. echo $menu;

y me crea una estructura del menu de la siguiente manera
Código HTML:
Ver original
  1. <ul>
  2.    <li> Home
  3.      <ul>
  4.        <li>home1</li>
  5.        <li>home2</li>
  6.        <li>home3</li>
  7.      </ul>
  8.    </li>
  9.    <li> Productos
  10.      <ul>
  11.        <li> productos1
  12.          <ul>
  13.            <li>productosub1-1</li>
  14.            <li>productosub1-2</li>
  15.          </ul>
  16.        </li>
  17.        <li>productos2</li>
  18.        <li>productos3</li>
  19.      </ul>
  20.    </li>
  21.  </ul>

pero necesito una estructura asi del menu:
Código HTML:
Ver original
  1. <div id="menu">
  2.        <ul class="menu">
  3.            <li><a href="#" class="parent"><span>level 1</span></a><!-- menu principal primer nivel -->
  4.            <li><a href="#" class="parent"><span>level 1</span></a><!-- menu principal primer nivel -->
  5.                 <div><ul><li><a href="#"><span>level 2</span></a></li></ul></div><!-- menu segundo nivel -->
  6.            </li>
  7.            <li><a href="#" class="parent"><span>level 1</span></a> <!-- menu principal primer nivel -->
  8.                <div><ul>
  9.                   <li><a href="#" class="parent"><span>level 2</span></a><!-- menu segundo nivel -->
  10.                       <div><ul><li><a href="#"><span>level 3</span></a></li></ul></div><!-- menu tercer nivel -->
  11.                   </li>
  12.                </ul></div>
  13.            </li>
  14.        </ul>
  15.    </div>

por favor alguien si me puede ayudar. o que me de alguna idea de como poder hacer esto