Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2010, 06:13
andyuruguayo
 
Fecha de Ingreso: marzo-2008
Mensajes: 25
Antigüedad: 16 años, 8 meses
Puntos: 0
Fatal error: Maximum execution time of 60 seconds exceeded

Buenas queridos amigos !!
Este error se me ha venido dando desde hace mucho !
Si bien he leido por ahi que este error se arregla modificando el PHP.ini, la idea de este tema es para ver si alguien me puede dar una mano para hacer mas efectiva la consulta que esta haciendo que esto se tranqui y se exceda en segundos.
La idea es armar un Excel con una consulta, y es alli donde se tranca.
La base de datos tiene unos 20500 datos mas o menos, y, la consulta que estoy tirando me daria como resultado unos 4000 datos mas o menos.
A alguien se le ocurre alguna forma para mejorar la consulta que voy a pegar a continuacion y asi hacer mas rapida la transaccion ?

Muchas gracias !!!

Código PHP:
Ver original
  1. <?php
  2.     if($_GET){
  3.         unlink('./Temporal/ConsultaListadoResultadosBanred.xls');
  4.         header('Location:../Administracion/I_Administracion.php');
  5.     }else{
  6.         $tipo_reporte = $_POST['SelectReporte'];
  7.         $base = "banred" ;
  8.         include '../D_ConversionFecha.php';
  9.    
  10.         $fecha_des = $_POST['FechaDesde'];
  11.         $date_des=FechaASQL($fecha_des);
  12.         $date_des;
  13.         $fecha_has = $_POST['FechaHasta'];
  14.         $date_has = FechaASQL($fecha_has);
  15.         $date_has;
  16.    
  17.         if ($tipo_reporte == "ConsultaListadoResultados"){ //COMIENZA INFORME LISTADORESULTADOS
  18.             $shtml = "<table>";
  19.             $conn = mysql_connect("localhost","root","3ntradA");
  20.             $sql = "select cli.CodCliente, cli.TipoLlamada, cli.Nombre, cli.Telefono, cli.Interno, cont.CodContacto, cont.Fecha, cont.Hora, cont.Asesor, cont.Resultado, cont.Motivo, cont.Observaciones from cliente cli, contacto cont where cli.CodCliente=cont.CodCliente and Fecha between '$date_des' and '$date_has' and cont.CodContacto in (select max(CodContacto) maximo from contacto group by CodCliente)";
  21.             $rs = mysql_db_query($base,$sql);
  22.             $total_datos = mysql_num_rows($rs);
  23.             $i=0;
  24.        
  25.             while($fila = mysql_fetch_array($rs)){
  26.                 $CodCliente_[$i] = $fila['CodCliente'];
  27.                 $tipo_llamada[$i] = $fila['TipoLlamada'];
  28.                 $nombre_[$i] = $fila['Nombre'];
  29.                 $telefono_[$i] = $fila['Telefono'];
  30.                 $interno_[$i] = $fila['Interno'];
  31.                 $codcontacto_[$i] = $fila['CodContacto'];
  32.            
  33.                 $date=$fila['Fecha'];
  34.                 $date=FechaANormal($date);
  35.                 $fecha_[$i] = $date;
  36.            
  37.                 $hora_[$i] = $fila['Hora'];
  38.                 $asesor_[$i] = $fila['Asesor'];
  39.                 $resultado_[$i] = $fila['Resultado'];
  40.                 $motivo_[$i] = $fila['Motivo'];
  41.                 $observaciones_[$i] = $fila['Observaciones'];
  42.                 $i++;
  43.             }  
  44.            
  45.             $shtml=$shtml."<tr>";
  46.                 $shtml=$shtml."<td>CodCliente</td>";
  47.                 $shtml=$shtml."<td>TipoLlamada</td>";
  48.                 $shtml=$shtml."<td>Nombre</td>";
  49.                 $shtml=$shtml."<td>Telefono</td>";
  50.                 $shtml=$shtml."<td>Interno</td>";
  51.                 $shtml=$shtml."<td>CodContacto</td>";
  52.                 $shtml=$shtml."<td>Fecha</td>";
  53.                 $shtml=$shtml."<td>Hora</td>";
  54.                 $shtml=$shtml."<td>Asesor</td>";
  55.                 $shtml=$shtml."<td>Resultado</td>";
  56.                 $shtml=$shtml."<td>Motivo</td>";
  57.                 $shtml=$shtml."<td>Observaciones</td>";
  58.             $shtml=$shtml."</tr>";
  59.        
  60.             for($i=0;$i<$total_datos;$i++){
  61.                 $shtml=$shtml."<tr>";
  62.                 $shtml=$shtml."<td>".$CodCliente_[$i]."</td><td>".$tipo_llamada[$i]."</td><td>".$nombre_[$i]."</td><td>".$telefono_[$i]."</td><td>".$interno_[$i]."</td><td>".$codcontacto_[$i]."</td><td>".$fecha_[$i]."</td><td>".$hora_[$i]."</td><td>".$asesor_[$i]."</td><td>".$resultado_[$i]."</td><td>".$motivo_[$i]."</td><td>".$observaciones_[$i]."</td>";
  63.                 $shtmo=$shtm."</tr>";  
  64.             }
  65.             $shtml=$shtml."</table>";
  66.        
  67.        
  68.             $sfile="./Temporal/ConsultaListadoResultadosBanred.xls"; //ruta del archivo a generar
  69.             $fp=fopen($sfile,"w");
  70.             fwrite($fp,$shtml);
  71.             fclose($fp);
  72.             header('Location:./I_DescargarReporte.php?tipo='.$tipo_reporte);
  73.         } //FINALIZA INFORME LISTADORESULTADOS
  74.     }  
  75. ?>