Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1310 → Rev 1311

/trunk/jrest/lib/RechercheObservation.php
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
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;
case 'recherche':
$sous_requete .= $this->fabriquerSousRequeteRechercheGenerale($id_utilisateur, $valeur);
$sous_requete .= ' AND ';
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";
}