Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/12/2011, 19:44
panchompc
 
Fecha de Ingreso: diciembre-2011
Ubicación: Chile
Mensajes: 36
Antigüedad: 12 años, 11 meses
Puntos: 2
Pregunta do while dentro de otro dowhile?

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