tengo un problemilla que no consigo resolver y a ver si alguien está más inspirado que yo en estos momentos. Necesito que a partir de un mes/año que seleccionamos, me saque un listado de usuarios con los días en concreto que no han accedido a la aplicación en ese mes.
Con esta primera función, obtengo un listado de los consultores y lo guardo en un array.
Código:
Con esta segunda función, quiero que por cada usuario (consultor), me saque los días que no han accedido a la herramienta. public function ObtenerConsultores(){ $query = "Select consultores.Ident_consultor FROM consultores WHERE ((consultores.f_fin != '' OR consultores.f_fin != '0000-00-00') AND consultores.esconsultor = '1');"; $consulta = new Consulta($query); echo $query; while($fila = $consulta->obtener_fila()) { $consultores[] = array( 'Ident_consultor' => $fila['Ident_consultor']); } return $consultores; echo $consultores; }
Código:
El problema es que me ejecuta la consulta una sóla vez, para el primer consultor que obtiene de la lista.public function ConsultoresNoReportados($mes, $ano){ $user = new usuario(); $cons= $user->ObtenerConsultores(); foreach($cons as $consultores) { $consultor_no_report = $consultores['Ident_consultor']; $query="Select calendario_dias.dia AS dia from calendario_dias 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');"; echo $query; $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."); }
Este es el código que llama a la función.
Código:
Y aqui se muestran los datoscase 'verinforme': $tpl_cabecera->set('subnivel',' > Consultores que aún no han reportado'); if ((isset($_SESSION['mess'])) && (isset($_SESSION['ano']))){ try{ $tpl->set('resultado_informe', usuario::ConsultoresNoReportados($_SESSION['mess'],$_SESSION['ano'])); } catch (Exception $e) { $tpl->set('error_msg',$e->getMessage()); } } else{ try{ $tpl->set('resultado_informe', usuario::ConsultoresNoReportados($_POST['mess'],$_POST['ano'])); $_SESSION['mess'] = $_POST['mess']; $_SESSION['fechafin'] = $_POST['ano']; } catch (Exception $e) { $tpl->set('error_msg',$e->getMessage()); } } $tpl->set('accion','reportarinforme'); $tpl_cuerpo = 'consultores_no_reportado_ver.tpl.php'; break;
Código:
<?php <table> if (isset($resultado_informe) && count($resultado_informe)>0) { $i=1; foreach($resultado_informe as $resultado) { ?> <tr> <td><?=$resultado['consultor'];?></td> <td><?=$resultado['dia'];?></td> </tr> <?php }} </table>