143,45 → 143,23 |
|
public function getTout($params) { |
|
$emplacements = null; |
$coordonnees_nulles = "coord_x = '000null' OR coord_x = '' ". |
" OR coord_y = '000null' OR coord_y = ''"; |
$coordonnees_non_nulles = "coord_x != '000null' AND coord_x != '' ". |
" AND coord_y != '000null' AND coord_y != ''"; |
$coordonnees_non_nulles_pas_sensible = "(".$coordonnees_non_nulles." AND mots_cles_texte NOT LIKE '%sensible%')"; |
$emplacements = null; |
$concatenation_id = 'CONCAT(coord_x,coord_y, wgs84_latitude,wgs84_longitude) '; |
|
$requete = 'SELECT DISTINCT *, location AS nom, '. |
"IF (".$coordonnees_non_nulles_pas_sensible.", ". |
"'stations', ". |
"'communes' ". |
") as type_emplacement, ". |
"IF (".$coordonnees_non_nulles_pas_sensible.", ". |
"mots_cles_texte, ". |
"coord_x, ". |
"wgs84_latitude ". |
") as lat, ". |
"IF (".$coordonnees_non_nulles_pas_sensible.", ". |
"wgs84_latitude, ". |
"coord_y, ". |
"wgs84_longitude ". |
") as lng, ". |
"IF (".$coordonnees_non_nulles_pas_sensible.", ". |
'CONCAT("'.self::MARQUEUR_STATION.':",coord_x,"|",coord_y), '. |
'CONCAT("'.self::MARQUEUR_COMMUNE.':",wgs84_latitude,"|",wgs84_longitude) '. |
") as id ". |
"wgs84_longitude, ". |
$concatenation_id." as id_coord ". |
'FROM cel_inventory AS i '. |
' LEFT JOIN locations AS l '. |
' ON (l.name = i.location AND l.code = i.id_location) '. |
"WHERE transmission = '1' ". |
" AND (". |
"(".($this->construireWhereRectangleStationOR() != null ? $this->construireWhereRectangleStationOR().' AND ' : ''). |
" (mots_cles_texte IS NULL OR mots_cles_texte NOT LIKE '%sensible%') ". |
")". |
" OR ". |
" ( ". |
"(".($this->construireWhereRectangleCommuneOR() != null ? $this->construireWhereRectangleCommuneOR().' AND ' : ''). |
"(".$coordonnees_nulles.")". |
")". |
" ) ". |
") ". |
$this->construireWhereRectangleStationOR()." OR ". |
$this->construireWhereRectangleCommuneOR().") ". |
$this->construireWhereDept(). |
$this->construireWhereCommune(). |
$this->construireWhereUtilisateur(). |
190,8 → 168,7 |
$this->construireWhereDate(). |
$this->construireWhereCommentaire(). |
$this->construireWhereProjet(). |
$this->construireWhereTag().' LIMIT 0,20000'; |
|
$this->construireWhereTag().' GROUP BY id_coord'; |
$resultats_emplacements = $this->executerRequete($requete); |
$emplacements = $this->traiterEmplacements($resultats_emplacements, $this->compterObservations($params)); |
return $emplacements; |
212,17 → 189,9 |
' LEFT JOIN locations AS l '. |
' ON (l.name = i.location AND l.code = i.id_location) '. |
"WHERE transmission = '1' ". |
" AND (". |
"(".($this->construireWhereRectangleStationOR() != null ? $this->construireWhereRectangleStationOR().' AND ' : ''). |
" (mots_cles_texte IS NULL OR mots_cles_texte NOT LIKE '%sensible%') ". |
")". |
" OR ". |
" ( ". |
"(".($this->construireWhereRectangleCommuneOR() != null ? $this->construireWhereRectangleCommuneOR().' Or ' : ''). |
" mots_cles_texte LIKE '%sensible%' ". |
")". |
" ) ". |
") ". |
" AND ". |
"(".$this->construireWhereRectangleStationOR()." OR ". |
$this->construireWhereRectangleCommuneOR(). |
$this->construireWhereDept(). |
$this->construireWhereCommune(). |
$this->construireWhereUtilisateur(). |
254,7 → 223,7 |
// laisser la classe cartoGroupage compter les élements simplifie le comptage |
// et permet de ne pas reparser le tableau pour compter les différents éléments |
$nb_elements = CartoGroupage::getNbElements(); |
|
// les bornes servent à centrer la carte dans le cas ou l'on demande des paramètres précis |
$marqueurs['stats']['coordmax'] = CartoGroupage::getBornes(); |
$marqueurs['stats']['stations'] = $nb_elements['stations']; |
$marqueurs['stats']['communes'] = $nb_elements['communes']; |
397,6 → 366,7 |
" ON (l.name = i.location AND l.code = i.id_location) ". |
"WHERE transmission = '1' ". |
((!$this->etreNull($this->parametres['commune'])) ? $this->construireWhereCommuneSansCoordonneesAvecSensibles() : $this->construireWhereCoordonneesSansSensibles()). |
$this->construireWhereDept(). |
$this->construireWhereUtilisateur(). |
$this->construireWhereNumTaxon(). |
$this->construireWhereNomTaxon(). |
406,7 → 376,6 |
$this->construireWhereTag(). |
'ORDER BY nom_sel ASC '. |
"LIMIT {$this->start},{$this->limit} "; |
|
$resultats = $this->requeter($requete, self::SQL_RETOUR_COMPLET, self::SQL_MODE_OBJET); |
$requete = 'SELECT FOUND_ROWS()'; |
$total = (int) $this->requeter($requete, self::SQL_RETOUR_COLONNE); |
616,7 → 585,7 |
$sql = " AND (coord_x = $lat AND coord_y = $lng) "; |
} |
} |
$sql .= ' AND mots_cles_texte NOT LIKE %sensible%'; |
$sql .= ' AND mots_cles_texte NOT LIKE "%sensible%" '; |
return $sql; |
} |
|