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:
Muchas gracias por anticipado. 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."); }