145,6 → 145,10 |
|
switch ($nom) { |
|
case "mots_cles"; |
$sous_requete .= 'mots_cles_texte LIKE '.$this->proteger('%'.$valeur.'%').' AND '; |
break; |
|
case 'annee': |
$sous_requete .= "year(date_observation) = ".$this->proteger($valeur) ; |
$sous_requete .= ' AND ' ; |
176,37 → 180,10 |
$sous_requete .= 'id_observation IN (SELECT id_observation FROM cel_obs_mots_cles WHERE id_mot_cle_obs IN ('.$liste_mc.'))'; |
$sous_requete .= ' AND ' ; |
break; |
|
case 'mots_cles': |
// TODO: gérer la recherche sur les mots clés textuels |
case 'recherche': |
$sous_requete .= $this->fabriquerSousRequeteRechercheGenerale($id_utilisateur, $valeur); |
$sous_requete .= ' AND '; |
break; |
|
//TODO: choisir un meilleur nom |
case 'nom_taxon': |
$valeur = str_replace("*","%",$valeur); |
$sous_requete .= "(nom_sel LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR courriel_utilisateur LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR prenom_utilisateur LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR nom_utilisateur LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR nom_sel LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR nom_sel_nn LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR nom_ret LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR nom_ret_nn LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR nt LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR famille LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR zone_geo LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR ce_zone_geo LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR date_observation LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR lieudit LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR station LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR milieu LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR commentaire LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR transmission LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR latitude LIKE ".$this->proteger('%'.$valeur.'%'). |
" OR longitude LIKE ".$this->proteger('%'.$valeur.'%'). |
")"; |
break; |
|
default: |
if(trim($nom) != '') |
{ |
221,6 → 198,34 |
return $sous_requete; |
} |
|
private function fabriquerSousRequeteRechercheGenerale($id_utilisateur, $valeur) { |
$valeur = str_replace("*","%",$valeur); |
$valeur = $this->proteger('%'.$valeur.'%'); |
$sous_requete = "(nom_sel LIKE ".$valeur. |
" OR courriel_utilisateur LIKE ".$valeur. |
" OR prenom_utilisateur LIKE ".$valeur. |
" OR nom_utilisateur LIKE ".$valeur. |
" OR nom_sel LIKE ".$valeur. |
" OR nom_sel_nn LIKE ".$valeur. |
" OR nom_ret LIKE ".$valeur. |
" OR nom_ret_nn LIKE ".$valeur. |
" OR nt LIKE ".$valeur. |
" OR famille LIKE ".$valeur. |
" OR zone_geo LIKE ".$valeur. |
" OR ce_zone_geo LIKE ".$valeur. |
" OR date_observation LIKE ".$valeur. |
" OR lieudit LIKE ".$valeur. |
" OR station LIKE ".$valeur. |
" OR milieu LIKE ".$valeur. |
" OR commentaire LIKE ".$valeur. |
" OR transmission LIKE ".$valeur. |
" OR latitude LIKE ".$valeur. |
" OR longitude LIKE ".$valeur. |
" OR mots_cles_texte LIKE ".$valeur. |
")"; |
return $sous_requete; |
} |
|
private function estUnvaleurZeroNulle($valeur) { |
return $valeur == "000null"; |
} |