29,6 → 29,7 |
$stat_demande = array_shift($ressources); |
$methode = 'get'.$stat_demande; |
if (method_exists($this, $methode)) { |
$this->ressources = $ressources; |
$stats = $this->$methode($ressources); |
} else { |
$this->messages[] = "Ce type de statistiques '$stat_demande' n'est pas disponible."; |
43,11 → 44,118 |
} |
|
private function analyserParametresUrl() { |
$this->parametres['utilisateur'] = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : null; |
$this->parametres['num_taxon'] = isset($_GET['num_taxon']) ? $this->bdd->quote($_GET['num_taxon']) : null; |
$this->parametres['utilisateur'] = isset($_GET['utilisateur']) ? $this->bdd->quote($this->verifierSecuriteParametreUrl($_GET['utilisateur'])) : null; |
$this->parametres['num_taxon'] = isset($_GET['num_taxon']) ? $this->bdd->quote($this->verifierSecuriteParametreUrl($_GET['num_taxon'])) : null; |
$this->parametres['taxon'] = isset($_GET['taxon']) ? $this->bdd->quote($this->verifierSecuriteParametreUrl($_GET['taxon'].'%')) : null; |
$this->parametres['start'] = isset($_GET['start']) ? $this->verifierSecuriteParametreUrl($_GET['start']) : null; |
$this->parametres['limit'] = isset($_GET['limit']) ? $this->verifierSecuriteParametreUrl($_GET['limit']) : null; |
} |
|
private function getNombres($param) { |
private function getListeUtilisateursNbrePhotos() { |
$requete = $this->construireRequeteListeUtilisateurNbrePhoto(); |
$resultats = $this->executerRequete($requete); |
$liste = array(); |
if ($resultats != false) { |
foreach ($resultats as $resultat) { |
$liste[$resultat['identifiant']] = $resultat['nbre']; |
} |
} |
return $liste; |
} |
|
private function construireRequeteListeUtilisateurNbrePhoto() { |
$select = 'SELECT identifiant, COUNT(DISTINCT ci_id_image) AS nbre '; |
$from = 'FROM cel_inventory '. |
' LEFT JOIN cel_obs_images ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) '. |
' LEFT JOIN cel_images ON (coi_ce_image = ci_id_image) '; |
$where = 'WHERE transmission = 1 '; |
$groupBy = 'GROUP BY identifiant '; |
$orderBy = 'ORDER BY nbre DESC '; |
$limitSql = 'LIMIT 0,150 '; |
|
|
if (count($this->parametres) != 0) { |
extract($this->parametres); |
|
$filtres = array(); |
|
if (isset($utilisateur)) { |
$filtres[] = "identifiant = $utilisateur "; |
} |
if (isset($num_taxon)) { |
$filtres[] = "num_taxon = $num_taxon "; |
} |
if (isset($taxon)) { |
$filtres[] = "nom_ret LIKE $taxon "; |
} |
$where .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : ''); |
|
if (isset($start)) { |
$limitSql = str_replace('0,', "$start,", $limitSql); |
} |
if (isset($limit)) { |
$limitSql = str_replace('150', $limit, $limitSql); |
} |
} |
|
$requete = $select.$from.$where.$groupBy.$orderBy.$limitSql; |
|
return $requete; |
} |
|
private function getListeTaxonsNbrePhotos() { |
$requete = $this->construireRequeteListeTaxonNbrePhoto(); |
$resultats = $this->executerRequete($requete); |
$liste = array(); |
if ($resultats != false) { |
foreach ($resultats as $resultat) { |
$liste[$resultat['nom_ret']] = $resultat['nbre']; |
} |
} |
return $liste; |
} |
|
private function construireRequeteListeTaxonNbrePhoto() { |
$select = 'SELECT nom_ret, COUNT(DISTINCT ci_id_image) AS nbre '; |
$from = 'FROM cel_inventory '. |
' LEFT JOIN cel_obs_images ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) '. |
' LEFT JOIN cel_images ON (coi_ce_image = ci_id_image) '; |
$where = 'WHERE transmission = 1 '. |
" AND nom_ret != '' "; |
$groupBy = 'GROUP BY nom_ret '; |
$orderBy = 'ORDER BY nbre DESC '; |
$limitSql = 'LIMIT 0,150 '; |
|
|
if (count($this->parametres) != 0) { |
extract($this->parametres); |
|
$filtres = array(); |
|
if (isset($utilisateur)) { |
$filtres[] = "identifiant = $utilisateur "; |
} |
if (isset($num_taxon)) { |
$filtres[] = "num_taxon = $num_taxon "; |
} |
if (isset($taxon)) { |
$filtres[] = "nom_ret LIKE $taxon "; |
} |
$where .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : ''); |
|
if (isset($start)) { |
$limitSql = str_replace('0,', "$start,", $limitSql); |
} |
if (isset($limit)) { |
$limitSql = str_replace('150', $limit, $limitSql); |
} |
} |
|
$requete = $select.$from.$where.$groupBy.$orderBy.$limitSql; |
return $requete; |
} |
|
private function getNombres() { |
|
$requete = $this->construireRequeteNbreObs(); |
$info['observations'] = (int) $this->executerRequete($requete, 'Column'); |
80,7 → 188,7 |
} |
$info['observationsParCommunesTotal'] += $resultat['nbre']; |
} |
$info['observationsParCommunesMoyenne'] = round($info['observationsParCommunesTotal'] / $info['communes'], 2); |
$info['observationsParCommunesMoyenne'] = ($info['communes'] > 0 ) ? round($info['observationsParCommunesTotal'] / $info['communes'], 2) : 0; |
|
return $info; |
} |
99,6 → 207,9 |
if (isset($num_taxon)) { |
$filtres[] = "num_taxon = $num_taxon "; |
} |
if (isset($taxon)) { |
$filtres[] = "nom_ret LIKE $taxon "; |
} |
|
$requete .= ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : ''); |
} |
121,6 → 232,9 |
if (isset($num_taxon)) { |
$filtres[] = "num_taxon = $num_taxon "; |
} |
if (isset($taxon)) { |
$filtres[] = "nom_ret LIKE $taxon "; |
} |
|
$requete .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : ''); |
} |
145,6 → 259,9 |
if (isset($num_taxon)) { |
$filtres[] = "num_taxon = $num_taxon "; |
} |
if (isset($taxon)) { |
$filtres[] = "nom_ret LIKE $taxon "; |
} |
|
$requete .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : ''); |
} |
166,10 → 283,16 |
$filtres[] = "ci_ce_utilisateur = $utilisateur "; |
} |
if (isset($num_taxon)) { |
$from .= 'LEFT JOIN cel_obs_images ON (coi_ce_image = ci_id_image) '. |
'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) '; |
|
$filtres[] = "num_taxon = $num_taxon "; |
} |
if (isset($taxon)) { |
$filtres[] = "nom_ret LIKE $taxon "; |
} |
if (isset($num_taxon) || isset($taxon)) { |
$from .= 'LEFT JOIN cel_obs_images ON (coi_ce_image = ci_id_image) '. |
'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) '; |
} |
|
$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : ''); |
} |
192,10 → 315,16 |
$filtres[] = "coi_ce_utilisateur = $utilisateur "; |
} |
if (isset($num_taxon)) { |
$from .= 'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) '; |
$filtres[] = "num_taxon = $num_taxon "; |
} |
if (isset($taxon)) { |
$filtres[] = "nom_ret LIKE $taxon "; |
} |
|
if (isset($num_taxon) || isset($taxon)) { |
$from .= 'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) '; |
} |
|
$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : ''); |
} |
|
219,6 → 348,9 |
if (isset($num_taxon)) { |
$filtres[] = "num_taxon = $num_taxon "; |
} |
if (isset($taxon)) { |
$filtres[] = "nom_ret LIKE $taxon "; |
} |
|
$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : ''); |
} |