Foros del Web » Programando para Internet » PHP »

PHP y consulta de mysql con calculos muy lento

Estas en el tema de PHP y consulta de mysql con calculos muy lento en el foro de PHP en Foros del Web. Hola a todos hace tiempo que no tengo problemas con esto pero explico lo que estoy haciendo tengo dos tablas sql con la misma estructura ...
  #1 (permalink)  
Antiguo 18/12/2012, 14:28
 
Fecha de Ingreso: enero-2012
Ubicación: Mexico Df
Mensajes: 95
Antigüedad: 12 años, 3 meses
Puntos: 6
PHP y consulta de mysql con calculos muy lento

Hola a todos hace tiempo que no tengo problemas con esto pero explico lo que estoy haciendo tengo dos tablas sql con la misma estructura una con 3,000 registros y otra 5,000 registros,cree una vista que une ambas tablas con un UNION ahí todo bien ahora bien
tengo que sacar reportes de esta vista por lo cual tengo la siguiente estructura

id_empresa | empresa |mes | total
1 | uno |1 | 500000
1 | uno |1 | 5000
2 | dos |1 | 300000

asi sucesivamente para 8,000 registros

Tengo que hacer reportes de aquí con la siguiente estructura

empresa | Enero | Febrero | Marzo | Abril | Agosto| Noviembre | Diciembre
1 | 2000 | 30121 |5000 |6065|5450 |54068 |7000
2 | 4055 | 40121 |5000 |6065|5450 |54068 |7000
3 | 2089 | 80121 |5000 |6065|5450 |54068 |7000
4 | 3580 | 90121 |5000 |6065|5450 |54068 |7000

Entonces hize lo siguiente


Código PHP:
Ver original
  1. <table width="100%" border="1" cellspacing="0">
  2.     <thead>
  3.         <tr>
  4.             <th>Emisor</th>
  5.             <?
  6.             $meses = mysql_query("SELECT mes,anio FROM meses WHERE anio = 2012");//Saco los meses de una tabla para poderlos poner en las cabezeras
  7.             $m_ulti = mysql_query("SELECT count(mes) as ultimo FROM meses WHERE anio = 2012");
  8.             $m_ulti = mysql_fetch_array($m_ulti);
  9.             $m_ulti=$m_ulti['ultimo'];//saco el ultimo mes para el ciclo
  10.             while ($m=mysql_fetch_array($meses)) {// imprimo las cabeceras que son los meses
  11.                 ?>
  12.                 <th><?= $m['mes'];?></th>
  13.                 <?
  14.             }
  15.             ?>
  16.         </tr>
  17.     </thead>
  18.     <tbody>
  19.         <?php
  20.         for ($x=1; $x <=8 ; $x++) { // hago el ciclo de las 8 empresas
  21.             $emi = mysql_query("SELECT emisor FROM emisores WHERE id_emisor = $x");//Obtengo el nombre de la empresa
  22.             $emi=mysql_fetch_array($emi);//El nombre de la empresa lo guardo en una variable
  23.             ?>
  24.             <tr>
  25.                 <td>
  26.                 <?php echo $emi['emisor'];// Lo imprimo en la primera columna ?>
  27.                 </td>
  28.                 <?
  29.                 for ($n=1; $n <=$m_ulti ; $n++) { //empiezo el ciclo para los meses y empezar a calcular los totales por empresa y por mes
  30.                     $importe = mysql_query("SELECT sum(saldo_pendiente) as imp FROM factura_general WHERE id_emisor = $x and mes = $n and anio=2012");
  31.                     $imp = mysql_fetch_array($importe);// guardo el resultado en esta variable
  32.                     ?>
  33.                     <td><? echo $imp['imp'];// La imprimo ?></td>
  34.                     <?
  35.                 }
  36.                 ?>
  37.             </tr>
  38.             <?php//Cierro el tr para que empieze la otra fila
  39.         }
  40.         ?>
  41.     </tbody>
  42. </table>

Pero esto se tarda mucho que me sale el fatal_error por el tiempo máximo de ejecución que se supera que son 30 seg

Que podría hacer para acelerar esta consulta ya que tarda mas de 30 seg??

Gracias

Saludos
  #2 (permalink)  
Antiguo 18/12/2012, 14:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: PHP y consulta de mysql con calculos muy lento

Pues dudo que la consulta mejore con código PHP, ya que la consulta es únicamente SQL, así pues ninguna solución podrá venir de PHP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/12/2012, 21:08
Avatar de JhonErick  
Fecha de Ingreso: noviembre-2012
Ubicación: colombia
Mensajes: 38
Antigüedad: 11 años, 5 meses
Puntos: 3
Respuesta: PHP y consulta de mysql con calculos muy lento

no se si te funcione por la complejidad de tu consulta pero lo que yo haría es tratar de deshacerme los for a los query por ejemplo en el Select de la linea 21 haría que me devolviera cuando id_emisor>=1 y id_emisor<=8 asi solo tendrías que hacer una consulta en lugar de 8.

Saludos

Última edición por JhonErick; 18/12/2012 a las 21:13
  #4 (permalink)  
Antiguo 19/12/2012, 01:14
Avatar de zetahosting  
Fecha de Ingreso: octubre-2011
Mensajes: 119
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: PHP y consulta de mysql con calculos muy lento

Concuerdo con JhonErick!
__________________
Excelente WebHosting -> www.zetahosting.net
[email protected]
Twitter: @zetahosting

Etiquetas: lento, mysql, sql, tabla, variables, calculo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:01.