Пример #1
0
  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);
  }