Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1311 → Rev 1306

/trunk/jrest/lib/RechercheObservation.php
145,10 → 145,6
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 ' ;
180,10 → 176,37
$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 'recherche':
$sous_requete .= $this->fabriquerSousRequeteRechercheGenerale($id_utilisateur, $valeur);
$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;
default:
if(trim($nom) != '')
{
198,34 → 221,6
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";
}
/trunk/jrest/lib/RechercheImage.php
77,7 → 77,7
$requete_recherche_images .= $sous_requete_recherche;
$nb_images = 0;
 
$resultat_requete_nombre_images = $this->requeter($requete_recherche_images);
if($resultat_requete_nombre_images && is_array($resultat_requete_nombre_images) && count($resultat_requete_nombre_images) > 0) {
144,7 → 144,7
switch($nom) {
case "mots_cles";
$sous_requete .= 'ci.mots_cles_texte LIKE '.$this->proteger('%'.$valeur.'%').' AND ';
$sous_requete .= $this->fabriquerSousRequeteMotsCles($valeur);
break;
case "id_mots_cles";
233,18 → 233,33
$chaine_recherche = strtolower($chaine_recherche);
$chaine_recherche = str_replace(' ','_',$chaine_recherche);
$requete = ' ('.
'ci.nom_original LIKE '.$this->proteger($chaine_recherche.'%').' OR '.
'co.nom_ret LIKE '.$this->proteger($chaine_recherche.'%').' OR '.
'co.nom_sel LIKE '.$this->proteger($chaine_recherche.'%').' OR '.
'co.zone_geo LIKE '.$this->proteger($chaine_recherche.'%').' OR '.
'co.ce_zone_geo LIKE '.$this->proteger('%'.$chaine_recherche.'%').' OR '.
//TODO: recherche multicriteres sur mots clés texte ne fonctionne pas à cause de la jointure
//'ci.mots_cles_texte LIKE '.$this->proteger('%'.$chaine_recherche.'%').' OR '.
'ci.ce_utilisateur LIKE '.$this->proteger($chaine_recherche.'%').' OR '.
'ci.courriel_utilisateur LIKE '.$this->proteger($chaine_recherche.'%').' OR '.
'ci.nom_utilisateur LIKE '.$this->proteger($chaine_recherche.'%').' OR '.
'ci.prenom_utilisateur LIKE '.$this->proteger($chaine_recherche.'%').' '.
$requete = ' (';
$requete .= 'ci.nom_original LIKE '.$this->proteger($chaine_recherche.'%') ;
$requete .= ' OR ' ;
$requete .= 'co.nom_ret LIKE '.$this->proteger($chaine_recherche.'%') ;
$requete .= ' OR ' ;
$requete .= 'co.nom_sel LIKE '.$this->proteger($chaine_recherche.'%') ;
$requete .= ' OR ' ;
 
$requete .= 'co.zone_geo LIKE '.$this->proteger($chaine_recherche.'%') ;
$requete .= ' OR ' ;
$requete .= 'co.ce_zone_geo LIKE '.$this->proteger('%'.$chaine_recherche.'%') ;
$requete .= ' OR ' ;
$requete_mots_cles = $this->fabriquerSousRequeteMotsClesTexte($chaine_recherche);
if(trim($requete_mots_cles) != '') {
$requete .= $requete_mots_cles;
$requete .= ' OR ' ;
}
$requete .= 'ci.ce_utilisateur LIKE '.$this->proteger($chaine_recherche.'%').' OR '.
'ci.courriel_utilisateur LIKE '.$this->proteger($chaine_recherche.'%').' OR '.
'ci.nom_utilisateur LIKE '.$this->proteger($chaine_recherche.'%').' OR '.
'ci.prenom_utilisateur LIKE '.$this->proteger($chaine_recherche.'%').' '.
') ';
return $requete;
264,6 → 279,16
return $requete_recherche_date;
}
//TODO: a refaire
private function fabriquerSousRequeteMotsClesTexte($mots_cles) {
}
//TODO a refaire
private function fabriquerSousRequeteMotsCles($mots_cles) {
}
//TODO a refaire
private function fabriquerSousRequeteMotsClesOu($mot_cle) {