Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/09/2012, 03:51
portela85
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años
Puntos: 3
Aplicación en Localhost y Servidor

Buenos días,

tengo un problema que no consigo solucionar. Tengo un módulo de una aplicación, que en el servidor local de mi computadora funciona a la perfección, pero cuando lo subo al servidor, no me funciona al completo. Se trata de una función que tiene un bucle foreach y tiene que ejecutar una consulta tantas veces como usuarios hay.

si hago un echo $query; puedo ver que la consulta se ejecuta pero no todas las veces que debería. Además unicamente me muestras las consultas que se han ejecutado. Ni imágenes ni datos ni nada.

He modificado el php.ini para aumentar el tiempo de ejecución de una consulta y al principio de la función he añadido ini_set("memory_limit","1024M"); para ver si funcionaba pero sigue haciendo lo mismo.

También he sacado un phpinfo() de los dos servidores (local y externo) para ver la configuración y he visto estas pequeñas diferencias aunque creo que no son importantes: active persisent link y active link (a 0 y 1 respectivamente), number of processors (2 y 4), cache_control (max-age = 0 en el servidor externo y en el local no existe) y msql.exe (en el externo no existe y en el local tiene valor: C:\AppServ\MySQL\bin)

Os dejo también la función a ver si creen que puede ser ese el problema o si se puede simplificar.
Código:
    public function ConsultoresNoReportados($mes, $ano){
    ini_set("memory_limit","1024M");
$user = new usuario();

$cons= $user->ObtenerConsultores();
    foreach($cons as $consultores) {
$consultor_no_report = $consultores['Ident_consultor'];

	$query2="Select calendario_dias.dia AS dia, consultores.consultor AS consultor from calendario_dias, consultores WHERE calendario_dias.mes = '$mes' AND dia NOT IN (SELECT DISTINCT trabajos.dia FROM trabajos INNER JOIN consultores ON trabajos.consultores_Ident_consultor = consultores.Ident_consultor WHERE mes = '$mes' AND ano = '$ano' AND (consultores.Ident_consultor) = '$consultor_no_report')AND (consultores.Ident_consultor) = '$consultor_no_report' AND (consultores.esconsultor) = '1' AND (consultores.reporte_habitual) = '1' AND ((consultores.f_fin)='' OR (consultores.f_fin) = '0000-00-00');";
	$consulta = new Consulta($query2);
	
	while($fila = $consulta->obtener_fila()) {
		$consultores_no_report[] = array(
				'consultor'		=> 	$fila['consultor'],               		 
				'dia' 			=>	$fila['dia']);
	}
    }
    
    return $consultores_no_report;
    
    if(!$consulta) 
	    throw new Exception("Al parecer han reportado todos.");

    }
Muchas gracias por anticipado.