Foros del Web » Programando para Internet » PHP »

Menu con php y mysqli

Estas en el tema de Menu con php y mysqli en el foro de PHP en Foros del Web. Yo ya lo tengo el diseño echo con css y tengo el html del menu desplegable pero no se como hacer para que con php ...
  #1 (permalink)  
Antiguo 03/09/2012, 17:32
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Menu con php y mysqli

Yo ya lo tengo el diseño echo con css y tengo el html del menu desplegable pero no se como hacer para que con php y mysqli sepa cual es el menu y segun cual sea me dice cuales son los submenu de ese menu

Hola yo quiero hacer este menu

Index
|_____Index1
|_____Index1
|_____Index1

Menu
|_____Menu1
|_____Menu2
|_____Menu3

Lo de arriba es un menu desplegable yo uso esto

Esto solo me muestra el menu sin los submenu
Código PHP:
Ver original
  1. $menu = mysqli_query($connection, "SELECT menu FROM menu");
  2. while ($menu1 = mysqli_fetch_array($menu)){
  3. echo "<li>$menu1[menu]</li>";
  4. }

Yo se mostrar todos los submenu asin:
Código PHP:
Ver original
  1. $menu = mysqli_query($connection, "SELECT submenu FROM menu");
  2. while ($menu1 = mysqli_fetch_array($menu)){
  3. echo "<li>$menu1[submenu]</li>";
  4. }

Pero no se como unir los dos para hacer esto:

Index
|_____Index1
|_____Index1
|_____Index1

Menu
|_____Menu1
|_____Menu2
|_____Menu3
  #2 (permalink)  
Antiguo 03/09/2012, 18:20
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Menu con php y mysqli

Depende de cómo tengas almacenados tus datos, aunque por lo que muestras, es algo realmente básico:
Código PHP:
Ver original
  1. $menu = mysqli_query($connection, "SELECT menu, submenu FROM menu"); //(ale, con mysqli)
y para mostrarlo, te sugiero primero pasarlo a un arreglo:

Código PHP:
Ver original
  1. while ($menu1 = mysqli_fetch_array($menu)){
  2.   $armen[$menu1['menu']][]=$armen[$menu1['submenu']];
  3. }
y recorrer con un foreach

Código PHP:
Ver original
  1. foreach($armen as $menu =>$m){
  2.      echo "<li>$menu</li>";
  3.      //creo que aquí iría un <ul>
  4.      foreach($m as $n =>$sub){
  5.          echo "<li>$sub</li>";
  6.      }
  7.      //creo que aquí iría un </ul>
  8. }


Quizá podrías hacer el menú desde el while, pero al menos yo estoy acostumbrado a organizarlo todo previamente en el arreglo
  #3 (permalink)  
Antiguo 04/09/2012, 02:59
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Respuesta: Menu con php y mysqli

Mira intente esto:

Código PHP:
Ver original
  1. <?php
  2. include ("../connection.php");
  3. ?>
  4. <link rel="StyleSheet" href="style.css" type="text/css"></head>
  5. <body>
  6. <ul id="menu">
  7. <?php
  8. $menu = mysqli_query($connection, "SELECT menu,submenu FROM menu ORDER BY id DESC");
  9. while ($menu1 = mysqli_fetch_array($menu)){
  10. echo "<li><a href='#'>$menu1[menu]</a>";
  11. echo "<ul><li><a href='#'>$menu1[submenu]</a></li>";
  12. }
  13. echo "</ul></li>";
  14. ?>
  15. </ul>
  16.     </div>

y me sale
Código HTML:
Ver original
  1. Home
  2.    |__INDEX
  3.       |___home1
  4.           |___home2
  5.               |___index1
  6.                    |___index3

y tiene que ser hacin:

Código HTML:
Ver original
  1. Home
  2.    |___home1
  3.       |___home2
  4.  
  5. INDEX
  6.    |___index1
  7.       |___index2

Puedes que tamvien sea problema de mi base de dato de como estan las tablas mis tablas estas hacin:
Código SQL:
Ver original
  1. ID             Menu               SubMenu
  2. 2                                  index3
  3. 2              INDEX               index1
  4. 4                                  home2
  5. 4              home               home1

Última edición por PepeF; 04/09/2012 a las 03:07

Etiquetas: html, mysql, mysqli
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 15:09.