Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/03/2010, 02:07
Greco2
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Pregunta duda con menu obtenido desde base de datos

hola a todos, tengo un menu horizontal construido en base a listas <ul>, cada elemento <li> es una seccion, dentro de cada seccion tengo tambien subsecciones construidas con otras listas...

-----------------------------------------
| SECCION 1 | SECCION 2 | SECCION 3 | SECCION X |
-----------------------------------------
| contenido1a |
- - - - - - - -
| contenido1b |
- - - - - - - -
| contenido1x |
- - - - - - - -

bueno, supongo que se entiende como es el menu, como todos esos menus desplegables que hay en muchas paginas

el codigo es asi:

Código HTML:
<ul>
    <li>seccion 1
        <ul>
            <li>contenido 1a</li>
            <li>contenido 1b</li>
        </ul>
    </li>
    <li>seccion 2
        <ul>
            <li>contenido 2a</li>
            <li>contenido 2b</li>
        </ul>
    </li>
    <li>seccion 3</li>
</ul> 
las secciones principales son siempre las mismas y nunca cambian pero lo que va dentro de cada seccion es variable ya que cada seccion puede tener X elementos. Lo guardo en base de datos de la siguiente forma:

tabla contenido
id - titulo - seccion - contenido
-------------------------------------------
1 - contenido1 a - seccion 1 - el texto bla bla....
2 - contenido2 a - seccion 2 - el texto de esta seccion....
....

por lo tanto cada ves que quiero agregar contenido a una de las secciones, voy al formulario que tengo para tal efecto, le doy un titulo (dicho titulo es el que aparecera en los elementos del menu en esa seccion), selecciono a que seccion pertenece y agrego el contenido... hasta ahi todo bien.

Ahora el problema se me presenta cuando quiero construir el menu horizontal sacando los titulos de la base de datos ya que no se como podría agruparlos en cada sección.

una solucion es hacer tantas consultas como secciones tenga, por ejemplo:

- abro el <UL> y el <LI> para la primera seccion...
- consulta mysql 1: traigo todo los registros en donde seccion sea igual a "seccion 1", y creo una nueva lista con cada "subseccion" por asi llamarlo que van dentro de SECCION 1.
- consulta 2: repito el mismo paso anterior pero esta vez para SECCION 2 y asi sucesivamente hasta completar el menu.

creo que no es la forma mas optima de realizar lo que necesito, estoy seguro que debe haber una forma mejor pero en este momento no se me ocurre.

tal ves podría hacer una sola consulta agrupando los registros por seccion y guardandolos en arrays (un array para cada seccion) y luego creo las listas recorriendo los arrays y me evito hacer tantas consultas a la base de datos.

Si alguien me puede dar una ayuda para aclararme como deberia hacerlo estaria agradecido.

espero no haberme extendido mucho en mi post y ojalá haya sido claro en explicar mi duda.

Saludos