hola, tengo entendido que si se puede poner un do while dentro de otro, pero no me funciona, el do while de adentro se queda en infinito y a los 30 seg la pagina arroja error de timeout
este el es code
Código PHP:
<?php
include("../funciones/config.php"); // aca estan los adtos del servidor, funciona correctamente
mysql_select_db($database, $volcan_conecta);
$query_Consulta_categorias_top = "SELECT * FROM tblcategorias WHERE strArquitectos='on' and idTipo='Productos' ORDER BY strTitulo ASC";
$Consulta_categorias_top = mysql_query($query_Consulta_categorias_top, $volcan_conecta) or die(mysql_error());
$row_Consulta_categorias_top = mysql_fetch_assoc($Consulta_categorias_top);
$totalRows_Consulta_categorias_top = mysql_num_rows($Consulta_categorias_top);
?>
//aca el extracto del script que no me funciona
<div id="smoothmenu1" class="ddsmoothmenu">
<ul>
<!--INICIO BOTON-->
<li><a href="index.php">INICIO</a></li>
<!--FIN BOTON-->
<!--INICIO BOTON-->
<li><a href="productos.php">PRODUCTOS</a>
<ul>
<?php do {// primer do while, repite las categorias?>
<li><a href="categoria_producto.php?Categoria=<?php echo $row_Consulta_categorias_top['idCategoria']; ?>"><?php echo $row_Consulta_categorias_top['strTitulo']; ?></a>
<ul>
<?php do { // segundo do while, asocia los productos a las categorias comparandoque el id de la categoria corresponda al seteado del producto
mysql_select_db($database, $volcan_conecta);
$query_Consulta_productos_top = "SELECT * FROM tblproductos WHERE strArquitectos='on' AND idCategoria='".$row_Consulta_categorias_top['idCategoria']."' ORDER BY strNombre ASC";
$Consulta_productos_top = mysql_query($query_Consulta_productos_top, $volcan_conecta) or die(mysql_error());
$row_Consulta_productos_top = mysql_fetch_assoc($Consulta_productos_top);
$totalRows_Consulta_productos_top = mysql_num_rows($Consulta_productos_top); ?>
<li><a href="producto.php?Producto=<?php echo $row_Consulta_productos_top['idProducto'];?>"><?php echo $row_Consulta_productos_top['strNombre'];?></a></li>
<?php } while ($row_Consulta_productos_top = mysql_fetch_assoc($Consulta_productos_top));// fin segundo do while ?>
</ul>
</li>
<?php } while ($row_Consulta_categorias_top = mysql_fetch_assoc($Consulta_categorias_top));// fin primer do while ?>
</ul>
</li>
//.. resto del menu ( el resto es estatico)
Se supone, que lo que debe hacer es, en el primer do while buscar las categorias que existan en la DB que cumplan algunas condiciones , ejemplo: que el idTipo sea "productos" y que el strArquitectos este en "on", con esa lista de categorias debe ponerlas en pantalla ( el nombre de categoria (strTitulo) y un link a la pagina categorias.php mandando el ID (idCategoria) por GET, Luego, dependiendo de la categoria mostrada, el segundo Do while debe consultar de nuevo a la DB para extraer los productos que esten asociadas a esa categoria, cuando ya no queden mas productos de esa categoria, deberia poner en pantalla la segunda categoria con sus respectivos productos, y asi repetir hasta que se acaben las consultas
onda asi:
categoria1
-- producto1
-- producto2
categoria2
--producto3
--producto4
etc
pero me muestra la primera categoria, con el primer producto y luego hace un infinito con ese producto:
categoria1
--producto 1
--producto 1
--producto 1
--producto 1
--producto 1
--producto 1
... y se repite hasta el Timeout del servidor
ojala puedan echarme una mano, llevo 2 dias atorado en eso, y esta estructura de consulta la tengo que repetir en varias partes del sitio.
soy mas o menos nuevo en php, asi que disculpen si no me explique bien o me falto poner algo mas.
saludos