Comunidad de diseño web y desarrollo en internet online

menu dinamico

Citar            
MensajeEscrito el 07 Ago 2008 02:03 pm
hola master de la programacion estoy haciendo un menu dinamico tipo acordeon con css esto tiene un menu y varios submenu
bien esta es la consulta q tengo

$menu=mysql_query("select * from menu,submenu where menu.id_menu=submenu.id_menu");

el problema me da q no me muestra ejemplo
-deporte
--tenis
--beisbol
--futbol
me muestra esto
--deporte
-tenis
--deporte
-beisbol
--deporte
-futbol

Este es el codigo

Código :

  <? while ($row = mysql_fetch_array($menu)){ 
    $nombre=$row["nombre"];
    $link=$row["link"];
    $nombre_sub=$row["nombre_sub"];
    echo "<dt class='a-m-t'>".$nombre."</dt>";
    echo "<dd class='a-m-d'><div class='bd'><a href='".$link."' target='_blank'>".$nombre_sub."</a></div>";
    }
    ?>

donde <dt class='a-m-t'> es menu y <dd class='a-m-d'> es submenu
Espero me ayuden gracias!

Por sandino

51 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Ago 2008 12:03 am
nadie me ayuda a resolver ese while?

Por sandino

51 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Ago 2008 02:07 am
Bueno amigo espero esto te ayude yo tengo el menu en una tabla y en otra tabla los submenus,asi que primero recorro todos los registros de la tabla menu, y en cada registo recorro todos los registros de la tabla sub menu.

Código :

$rs=mysql_query('select cod_men,nombre from menus',$cn);
//recorremos la el recordset
while ($row = mysql_fetch_row($rs)) {
   echo $row[1]; //imprime nombre de menu
   //creamos el recordet para menus
   $rs2=mysql_query('select * from submenus where cod_men=\''.$row[0].'\'',$cn);
      while ($row2=mysql_fetch_row($rs2)){
         echo $row2[1];
      } 
}

Espero te ayude nos vemos.

Por FlexandFlash

48 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Ago 2008 12:41 pm
sorry, no me sirve tiene q ser el menu q te planteo, asi lo quiere el cliente, que haga un efecto acordion.Gracias en todo caso, alguna idea mas?

Por sandino

51 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Ago 2008 04:59 am
bro prueba algo asi

una tabla menus
con los campos
id_menu
nombre_menu

y otra tabla submenus
con los campos
id_subm
id_menu
nombre_subm

Código :

$rs=mysql_query('select  *  from menus',$cn);
//recorremos la el recordset
while ($row = mysql_fetch_row($rs)) {   
echo "- ".$row[nombre_menu]."<br>"; //imprime nombre de menu   

$rs2=mysql_query('select * from submenus where id_menu=\''.$row[id_menu].'\'',$cn);      
while ($row2=mysql_fetch_row($rs2)){         
echo "-- ".$row2[nombre_subm]."<br>";      
} 
}


Probalo asi debe salir algo como lo q buscas

Por talcual

686 de clabLevel



 

Colombia

msie7
Citar            
MensajeEscrito el 10 Ago 2008 07:54 pm
Si dentro del "while", pones:
echo $nombre;
echo $nombre_sub;
, es normal que en cada estadio, te imprima ambas cosas.
Deberías de poner dos "while", uno anidado dentro de otro.

Código :

<?php
 while ($row = mysql_fetch_array($menu))
    {$nombre=$row["nombre"];
     echo "<dt class='a-m-t'>".$nombre."</dt>";
     while ($row2 = mysql_fetch_array($sub_menu))
        {$link=$row2["link"];
         $nombre_sub=$row2["nombre_sub"];
         echo "<dd class='a-m-d'><div class='bd'><a href='".$link."' target='_blank'>".$nombre_sub."</a></div>";
        }
    }
?>

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 24 Sep 2008 09:42 am

El Oso Amoroso escribió:

Si dentro del "while", pones:
echo $nombre;
echo $nombre_sub;
, es normal que en cada estadio, te imprima ambas cosas.
Deberías de poner dos "while", uno anidado dentro de otro.

Código :

<?php
 while ($row = mysql_fetch_array($menu))
    {$nombre=$row["nombre"];
     echo "<dt class='a-m-t'>".$nombre."</dt>";
     while ($row2 = mysql_fetch_array($sub_menu))
        {$link=$row2["link"];
         $nombre_sub=$row2["nombre_sub"];
         echo "<dd class='a-m-d'><div class='bd'><a href='".$link."' target='_blank'>".$nombre_sub."</a></div>";
        }
    }
?>


Y supongo que para 3 sería cuestión de anidar otro while.

Yo tengo un problema similar, ya que tengo 3 tablas categorias, secciones, subsecciones, que están relacionadas mediente ids.

Y quiero que me salga algo así.

-cat1
----sec1
------subsec1
------subsec2
----sec2
------subsec3
--cat2
...

XD me sale con dos, pero no puedo con tres, al final como soy tan malo en programación, pondré las categorias fijas y sólo haré dinamico dos niveles! XD

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.