Código PHP:
// traemos listado de categorias
$arrCategorias = array();
$query = "SELECT idCategoria, valor FROM `categorias` ORDER BY valor ASC";
$resultado = mysql_query ($query, $dbConn);
while ( $row = mysql_fetch_assoc ($resultado)) {
array_push( $arrCategorias,$row );
}
// traemos listado de items
$arrItems = array();
$query = "SELECT * FROM `items` GROUP BY idCategoria";
$resultado = mysql_query ($query, $dbConn);
while ( $row = mysql_fetch_assoc ($resultado)) {
array_push( $arrItems,$row );
}
Código HTML:
<div id="content"> <div id="wrapper"> <div id="steps"> <!-- Aquí los items --> <!-- Este es el bucle 1: --> <? foreach ($arrCategorias as $categoria) { ?> <fieldset class="step"> <!-- Este es el bucle 2: --> <? foreach ($arrItems as $items) { ?> <? echo $items['cuerpo']; ?> <? } ?> </fieldset> <? } ?> </div> <div id="navigation"> <ul> <!-- Este es el bucle 3: --> <? foreach ($arrCategorias as $categoria) { ?> <li><a href="#"><? echo $categoria['valor']; ?></a></li> <? } ?> </ul> </div> </div> </div>
El bucle nº 1 genera un array con las categorias existentes, con cada categoría dentro de <fieldset class="step"></fieldset>.
El bucle nº 2 genera un segundo array (dentro del nº 1) donde debieran mostrarse los items agrupados por categoría. El problema es que me muestra todos los items, de todas las categorías.
El bucle nº3 es igual al nº 1 y simplemente genera un menu de navegacion acorde con las categorías del bucle nº 1.
Intente primero modificar la consulta SQL, pero creo que es mas bien un problema del/los arrays, para conseguir que me muestre los items agrupados por categoría, dentro del array que genera las mismas. Alguien tiene alguna idea? Intente aplicar varias soluciones de los FAQs y no lo consigo.