Buenas tardes,
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:
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;
}
Con esta segunda función, quiero que por cada usuario (consultor), me saque los días que no han accedido a la herramienta.
Código:
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.");
}
El problema es que me ejecuta la consulta una sóla vez, para el primer consultor que obtiene de la lista.
Este es el código que llama a la función.
Código:
case '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;
Y aqui se muestran los datos
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>