private function get_db_top_exclusions($du,$au,$filtre_cat=Null,$filtre_mes=Null,$filtre_san=Null,$filtre_role=Null) { $this->sql="SELECT ssan.login, count(se.id_exclusion) AS nb FROM s_exclusions se INNER JOIN s_sanctions ssan ON se.id_sanction=ssan.id_sanction INNER JOIN s_incidents sin ON ssan.id_incident=sin.id_incident INNER JOIN s_protagonistes sp ON (sp.id_incident=ssan.id_incident AND sp.login=ssan.login) "; //if($filtre_role)$this->sql.=' LEFT JOIN s_protagonistes sp ON ssan.id_incident=sp.id_incident'; if($filtre_mes)$this->sql.=' INNER JOIN s_traitement_incident str (ON ssan.id_incident=str.id_incident AND ssan.login=str.login_ele) INNER JOIN s_mesures smes ON str.id_mesure=smes.id '; $this->sql.=' WHERE sin.date BETWEEN \''.$du. '\' AND \''.$au.'\' '; if($filtre_role) $this->sql.=" AND (sp.qualite IN ('".parent::make_list_for_request_in($filtre_role)."') OR sp.qualite IS NULL) AND ssan.login=sp.login"; if($filtre_san) { $this->sql.=" AND (ssan.nature IN ('".parent::make_list_for_request_in($filtre_san)."'))"; } if($filtre_mes) { $this->sql.=" AND smes.type='prise' "; $this->sql.=" AND (str.id_mesure IN ('".parent::make_list_for_request_in($filtre_mes)."'))"; } if($filtre_cat) { $this->sql.=" AND ( sin.id_categorie IN ('".parent::make_list_for_request_in($filtre_cat)."')"; if (in_array('Null',$filtre_cat)) $this->sql.="OR sin.id_categorie is null)"; else $this->sql.=")"; } $this->sql.=' GROUP BY ssan.login '; $this->sql.=' ORDER BY count(se.id_exclusion) DESC LIMIT 10 '; $this->res=mysqli_query($GLOBALS["mysqli"], $this->sql); if($this->res) { while($this->row=mysqli_fetch_object($this->res)) { $this->top_exclusions[]=$this->row; } } return($this->top_exclusions); }