647,15 → 647,15 |
if (isset($tag) && !$this->etreNull($tag)) { |
$tag_sql = $this->getSqlWhereMotsCles($tag); |
// Construction de la requĂȘte |
$requete = 'SELECT DISTINCT coi.id_observation AS id_obs, coi.ce_utilisateur AS utilisateur '. |
'FROM cel_images '. |
$requete = 'SELECT DISTINCT coi.id_observation AS id_obs, ci.ce_utilisateur AS utilisateur '. |
'FROM cel_images ci'. |
' LEFT JOIN cel_obs_images coi'. |
' ON (ci_id_image = coi_ce_image) '. |
' LEFT JOIN cel_obs AS i '. |
' ON (coi_ce_utilisateur = i.identifiant AND coi_ce_observation = i.ordre) '. |
' LEFT JOIN locations AS l '. |
" ON (l.name = i.location AND l.code = i.id_location) ". |
"WHERE transmission = '1' ". |
' ON (ci.id_image = coi.id_image) '. |
' LEFT JOIN cel_obs AS co '. |
' ON (coi.id_observation = co.id_observation) '. |
' LEFT JOIN cel_zones_geo AS l '. |
" ON (l.nom = co.zone_geo AND l.id_zone_geo = co.ce_zone_geo) ". |
"WHERE transmission = '1' ". |
$this->construireWhereCoordonnees(). |
$this->construireWhereUtilisateur(). |
$this->construireWhereNumTaxon(). |
662,7 → 662,7 |
$this->construireWhereNomTaxon(). |
$this->construireWhereProjet(). |
(!$this->etreNull($tag_sql) ? "AND ($tag_sql) " : ''). |
'ORDER BY utilisateur ASC, ordre ASC'; |
'ORDER BY utilisateur ASC, ci.ordre ASC'; |
//$this->debug[] = $requete; |
//die($requete); |
$elements_tag = $this->executerRequete($requete); |
704,8 → 704,8 |
private function getSqlWhereMotsCles($tag) { |
$sql = null; |
$mots_cles = $this->decomposerParametreTag($tag); |
$requete_projet = $this->getSqlWhereMotsClesImages($tag); |
$sql = implode(" \nOR ", $requete_projet); |
$requete_projet = $this->getSqlWhereMotsClesImages($mots_cles['motsClesEncodesProteges']); |
$sql = $requete_projet; |
//$this->debug[] = $sql; |
return $sql; |
} |
716,7 → 716,7 |
private function getSqlWhereMotsClesImages($mots_cles_encodes) { |
$where_mots_cles_images = array(); |
foreach ($mots_cles_encodes as $mot_cle_encode) { |
$where_mots_cles_images[] = "ci.mots_cles_texte = $mot_cle_encode"; |
$where_mots_cles_images[] = "ci.mots_cles_texte LIKE $mot_cle_encode"; |
} |
$where_mots_cles_images = implode(' OR ', $where_mots_cles_images); |
return $where_mots_cles_images; |
723,6 → 723,7 |
} |
|
private function decomposerParametreTag($tags) { |
|
$mots_cles = array('type' => null, 'motsCles' => null, 'motsClesEncodesProteges' => null); |
if (preg_match('/.+OU.+/', $tags)) { |
$mots_cles['type'] = 'OR'; |
735,8 → 736,9 |
} |
|
foreach ($mots_cles['motsCles'] as $mot) { |
$mots_cles['motsClesEncodesProteges'][] = $this->bdd->quote($mot); |
$mots_cles['motsClesEncodesProteges'][] = $this->bdd->quote('%'.$mot.'%'); |
} |
//print_r($mots_cles); exit; |
$this->debug[] = $mots_cles; |
return $mots_cles; |
} |