Lista y sublista en PHP
Tengo una pequeña web de programas en mente, cada programa tiene una categoría principal y luego una subcategoría. Mi idea es la de hacer un listado de categoría principal, y bajo esta, las subcategorías exitentes que tengan como categoría principal la que se ha escrito ya en pantalla.
Intenté hacerlo con dos bucles anidados do... While, pero no sale. ¿Me puedes echar una mano?
He declarado dos juegos de registros así:
mysql_select_db($database_trucalia, $trucalia);
$query_rsListProgXcat = "SELECT DISTINCT categoria1 FROM programas ORDER BY categoria1 ASC";
$rsListProgXcat = mysql_query($query_rsListProgXcat, $trucalia) or die(mysql_error());
$row_rsListProgXcat = mysql_fetch_assoc($rsListProgXcat);
$totalRows_rsListProgXcat = mysql_num_rows($rsListProgXcat);
Este era el de la primera categoría, ahora el de la subcategoría.
$cat1 = $row_rsListProgXcat['categoria1'];
mysql_select_db($database_trucalia, $trucalia);
$query_rsCategoria2 = "SELECT DISTINCT categoria2 FROM programas WHERE categoria1 LIKE '%$cat1%' ORDER BY categoria2 ASC";
$rsCategoria2 = mysql_query($query_rsCategoria2, $trucalia) or die(mysql_error());
$row_rsCategoria2 = mysql_fetch_assoc($rsCategoria2);
$totalRows_rsCategoria2 = mysql_num_rows($rsCategoria2);
Y este el código que te dije que tengo, pero que no funciona como deseo.
</table>
<hr align="left" width="452">
<table width="452" border="0" cellspacing="1">
<?php do { ?>
<tr>
<td class="texto1"><a href="programas.php?categoria=<?php echo $row_rsListProgXcat['categoria1']; ?>"><?php echo $row_rsListProgXcat['categoria1']; ?></a> </td>
</tr>
<?php do { ?>
<tr>
<td class="textoNormal">>><?php echo $row_rsCategoria2['categoria2']; ?><br> </td>
</tr>
<?php } while ($row_rsCategoria2 = mysql_fetch_assoc($rsCategoria2)); ?><br>
<?php } while ($row_rsListProgXcat = mysql_fetch_assoc($rsListProgXcat)); ?>
</table>
**********************
¿Cómo puedo hacer que funcione?
Un ejemplo más para aclararlo mejor. Tengo como categorías principales Audio y Seguridad. Como subcategorías de Audio: Editores y Códecs. Y de Seguridad, Antivirus y vigilancia.
Yo quiero que aparezca esto por pantalla:
Audio
·Editores
·Códecs
Seguridad
·Antivirus
·Vigilancia
Intenté hacerlo con dos bucles anidados do... While, pero no sale. ¿Me puedes echar una mano?
He declarado dos juegos de registros así:
mysql_select_db($database_trucalia, $trucalia);
$query_rsListProgXcat = "SELECT DISTINCT categoria1 FROM programas ORDER BY categoria1 ASC";
$rsListProgXcat = mysql_query($query_rsListProgXcat, $trucalia) or die(mysql_error());
$row_rsListProgXcat = mysql_fetch_assoc($rsListProgXcat);
$totalRows_rsListProgXcat = mysql_num_rows($rsListProgXcat);
Este era el de la primera categoría, ahora el de la subcategoría.
$cat1 = $row_rsListProgXcat['categoria1'];
mysql_select_db($database_trucalia, $trucalia);
$query_rsCategoria2 = "SELECT DISTINCT categoria2 FROM programas WHERE categoria1 LIKE '%$cat1%' ORDER BY categoria2 ASC";
$rsCategoria2 = mysql_query($query_rsCategoria2, $trucalia) or die(mysql_error());
$row_rsCategoria2 = mysql_fetch_assoc($rsCategoria2);
$totalRows_rsCategoria2 = mysql_num_rows($rsCategoria2);
Y este el código que te dije que tengo, pero que no funciona como deseo.
</table>
<hr align="left" width="452">
<table width="452" border="0" cellspacing="1">
<?php do { ?>
<tr>
<td class="texto1"><a href="programas.php?categoria=<?php echo $row_rsListProgXcat['categoria1']; ?>"><?php echo $row_rsListProgXcat['categoria1']; ?></a> </td>
</tr>
<?php do { ?>
<tr>
<td class="textoNormal">>><?php echo $row_rsCategoria2['categoria2']; ?><br> </td>
</tr>
<?php } while ($row_rsCategoria2 = mysql_fetch_assoc($rsCategoria2)); ?><br>
<?php } while ($row_rsListProgXcat = mysql_fetch_assoc($rsListProgXcat)); ?>
</table>
**********************
¿Cómo puedo hacer que funcione?
Un ejemplo más para aclararlo mejor. Tengo como categorías principales Audio y Seguridad. Como subcategorías de Audio: Editores y Códecs. Y de Seguridad, Antivirus y vigilancia.
Yo quiero que aparezca esto por pantalla:
Audio
·Editores
·Códecs
Seguridad
·Antivirus
·Vigilancia
2 Respuestas
Respuesta de lumanet
1
Respuesta de lukaswebs
1