Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2010, 03:45
albertius
 
Fecha de Ingreso: marzo-2003
Ubicación: Barcelona
Mensajes: 107
Antigüedad: 21 años, 2 meses
Puntos: 0
Bucle php que hace consultas

Hola a todos. utilizo un bucle php que hace una subconsulta por cada resultado de la primera consulta, funciona a la perfección pero creo que puede gastar mucho recurso de maquina. Existe alguna forma mejor de hacerlo directamente con SQL. Gracias.


Código PHP:
if ($_POST['accion'] == "cargarGrupos") {
   
$query_r_grupos sprintf("SELECT * FROM grupos_paginas ORDER BY posicion_grupo ASC");
   
$r_grupos mysql_query($query_r_grupos$conexionBD);
   
$row_r_grupos mysql_fetch_assoc($r_grupos);
   
$totalRows_r_grupos mysql_num_rows($r_grupos);
   if (!
$r_grupos) {
      echo 
"&resultado=0&mensaje=" mysql_error() . "&";
   }
   else {
      echo 
"&resultado=1&cantidadGrupos=".$totalRows_r_grupos;
      
$count=0;
      do {
         echo 
"&idGrupo" $count "=" $row_r_grupos['id_grupo'];
         echo 
"&nombreGrupo" $count "=" $row_r_grupos['nombre_grupo'];
         echo 
"&idPaginaGrupo" $count "=" $row_r_grupos['id_pagina_grupo'];
         echo 
"&posicionGrupo" $count "=" $row_r_grupos['posicion_grupo'];
         
         
$query_r_paginas sprintf("SELECT * FROM subsecciones, paginas WHERE subsecciones.id_grupo_sub=%s AND subsecciones.pagina_sub = paginas.id_pag ORDER BY subsecciones.posicion_sub ASC",
                             
GetSQLValueString($row_r_grupos['id_grupo'], "int"));
         
$r_paginas mysql_query($query_r_paginas$conexionBD);
         
$row_r_paginas mysql_fetch_assoc($r_paginas);
         
$totalRows_r_paginas mysql_num_rows($r_paginas);
         if (!
$r_paginas) {
            echo 
"&resultado=0&mensaje=" mysql_error() . "&";
            exit;
         }
         else {
            echo 
"&cantidadPaginas" $count "=" $totalRows_r_paginas;
            
$count2=0;
            
            do {
               echo 
"&idPagina" $count "_" $count2 "=" $row_r_paginas['pagina_sub'];
               echo 
"&seccionPagina" $count "_" $count2 "=" $row_r_paginas['seccion_pag'];
               echo 
"&tituloPagina" $count "_" $count2 "=" $row_r_paginas['titulo_pag'];
               echo 
"&link" $count "_" $count2 "=" $row_r_paginas['link_pag'];
               
$count2++;
            } while (
$row_r_paginas mysql_fetch_assoc($r_paginas));
         }
         
mysql_free_result($r_paginas);
         
$count++;
      } while (
$row_r_grupos mysql_fetch_assoc($r_grupos));
   }
   
mysql_free_result($r_grupos);