Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/06/2012, 15:31
Avatar de cuasatar
cuasatar
 
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 9 meses
Puntos: 181
Respuesta: crear menu dinamico con php y mysql

Cita:
Iniciado por ocp001a Ver Mensaje
Suponiendo que tienes hasta tres niveles almacenados en una bd:

Código PHP:
Ver original
  1. $x=0;
  2.     while($p=mysql_fetch_assoc($paginas)){
  3.         $men[$p["nivel1"]][$p["nivel2"]][$p["nivel3"]][$x]["id"]=$p["id"];//id de tu pagina
  4.         $men[$p["nivel1"]][$p["nivel2"]][$p["nivel3"]][$x]["nom"]=$p["nombre"];//nombre
  5.         $x++;
  6.     }
  7.  
  8. $menu='<ul>';
  9.     if(isset($men))
  10.     foreach($men as $n1 =>$mx){
  11.         $menu.="<li><a>$n1</a><ul>";
  12.         foreach($mx as $n2 =>$my){
  13.             if(!empty($n2)){
  14.                 $menu.="<li><a>$n2</a><ul>";
  15.                 foreach($my as $n3 =>$mz){
  16.                     if(!empty($n3)){
  17.                         $menu.="<li><a>$n3</a><ul>";
  18.                         foreach($mz as $nms =>$md)
  19.                             $menu.="<li><a href=\"$md[id]\">$md[nom]</a></li>";
  20.                         $menu.="</ul></li>";
  21.                     }else
  22.                         foreach($my[$n3] as $nms=>$md)
  23.                             $menu.="<li><a href=\"$md[id]\">$md[nom]</a></li>";
  24.                 }
  25.                 $menu.="</ul></li>";
  26.             }else
  27.                 foreach($my[$n2] as $nms=>$md)
  28.                     $menu.="<li><a href=\"$md[id]\">$md[nom]</a></li>";
  29.         }
  30.         $menu.="</ul></li>";
  31.     }
  32. $menu.='</ul>';
ocp001a De antemano muchas gracias por tu respuesta. La estructura como hace el recorrido con los foreach la tengo clara y digamos que eso de momento no tiene problema entenderlo.

Lo que no me quedo muy claro es la primera parte
Código PHP:
$x=0;
    while(
$p=mysql_fetch_assoc($paginas)){
        
$men[$p["nivel1"]][$p["nivel2"]][$p["nivel3"]][$x]["id"]=$p["id"];//id de tu pagina
        
$men[$p["nivel1"]][$p["nivel2"]][$p["nivel3"]][$x]["nom"]=$p["nombre"];//nombre
        
$x++;
    } 
Si entendi bien la $paginas seria algo así como
Código PHP:
$sql=SELECT from pages;
$paginas=mysql_query($sql,$conexion); 
Y por tanto x iria desde 0 hasta el numero total de articulos. Según tienes en tu arreglo se colocaria tres datos mas a la tabla que serian nivel 1, nivel 2 y nivel 3.
¿Que datos se deberian colocar en estos tres campos para obtener el nivel correspondiente? Estoy un poco perdido en esta parte. Gracias de antemano por tu colaboración.
__________________
Blog de humor http://elcuasatar.net63.net/