Subversion Repositories eFlore/Applications.cel

Rev

Rev 1295 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1295 Rev 1311
Line 143... Line 143...
143
				continue;	
143
				continue;	
144
			}
144
			}
Line 145... Line 145...
145
						
145
						
Line -... Line 146...
-
 
146
			switch ($nom) {
-
 
147
				
-
 
148
				case "mots_cles";
-
 
149
					$sous_requete .= 'mots_cles_texte LIKE '.$this->proteger('%'.$valeur.'%').' AND ';
146
			switch ($nom) {
150
				break;
147
				
151
				
148
				case 'annee':
152
				case 'annee':
149
					$sous_requete .= "year(date_observation) = ".$this->proteger($valeur) ;
153
					$sous_requete .= "year(date_observation) = ".$this->proteger($valeur) ;
Line 174... Line 178...
174
                    $liste_mc = '"'.str_replace(';','","',$valeur).'"';
178
                    $liste_mc = '"'.str_replace(';','","',$valeur).'"';
175
                    $sous_requete .= '' ;   
179
                    $sous_requete .= '' ;   
176
                    $sous_requete .= 'id_observation IN (SELECT id_observation FROM cel_obs_mots_cles WHERE id_mot_cle_obs IN ('.$liste_mc.'))';
180
                    $sous_requete .= 'id_observation IN (SELECT id_observation FROM cel_obs_mots_cles WHERE id_mot_cle_obs IN ('.$liste_mc.'))';
177
                    $sous_requete .= ' AND ' ;
181
                    $sous_requete .= ' AND ' ;
178
                break;
182
                break;
179
                              
-
 
180
                 case 'mots_cles':
183
                case 'recherche':
181
					// TODO: gérer la recherche sur les mots clés textuels
-
 
182
                break;
-
 
183
                
-
 
184
                //TODO: choisir un meilleur nom
-
 
185
                case 'nom_taxon':
-
 
186
                	$valeur = str_replace("*","%",$valeur);
184
                	$sous_requete .= $this->fabriquerSousRequeteRechercheGenerale($id_utilisateur, $valeur);
187
                	$sous_requete .= "(nom_sel LIKE ".$this->proteger('%'.$valeur.'%').
185
                	$sous_requete .= ' AND ';
188
								" OR courriel_utilisateur LIKE ".$this->proteger('%'.$valeur.'%').
-
 
189
								" OR prenom_utilisateur LIKE ".$this->proteger('%'.$valeur.'%').
-
 
190
								" OR nom_utilisateur LIKE ".$this->proteger('%'.$valeur.'%').
-
 
191
								" OR nom_sel LIKE ".$this->proteger('%'.$valeur.'%').
-
 
192
								" OR nom_sel_nn LIKE ".$this->proteger('%'.$valeur.'%').
-
 
193
								" OR nom_ret LIKE ".$this->proteger('%'.$valeur.'%').
-
 
194
								" OR nom_ret_nn LIKE ".$this->proteger('%'.$valeur.'%').
-
 
195
								" OR nt LIKE ".$this->proteger('%'.$valeur.'%').
-
 
196
								" OR famille LIKE ".$this->proteger('%'.$valeur.'%').
-
 
197
								" OR zone_geo LIKE ".$this->proteger('%'.$valeur.'%').
-
 
198
								" OR ce_zone_geo LIKE ".$this->proteger('%'.$valeur.'%').
-
 
199
								" OR date_observation LIKE ".$this->proteger('%'.$valeur.'%').
-
 
200
								" OR lieudit LIKE ".$this->proteger('%'.$valeur.'%').
-
 
201
								" OR station LIKE ".$this->proteger('%'.$valeur.'%').
-
 
202
								" OR milieu LIKE ".$this->proteger('%'.$valeur.'%').
-
 
203
								" OR commentaire LIKE ".$this->proteger('%'.$valeur.'%').
-
 
204
								" OR transmission LIKE ".$this->proteger('%'.$valeur.'%').
-
 
205
								" OR latitude LIKE ".$this->proteger('%'.$valeur.'%').
-
 
206
								" OR longitude LIKE ".$this->proteger('%'.$valeur.'%').
-
 
207
								")";
-
 
208
                break;
186
                	break;
209
				
-
 
210
				default:
187
				default:
211
					if(trim($nom) != '')
188
					if(trim($nom) != '')
212
					{
189
					{
213
						$sous_requete .= $nom." = ".$this->proteger($valeur) ;
190
						$sous_requete .= $nom." = ".$this->proteger($valeur) ;
214
						$sous_requete .= ' AND ' ;
191
						$sous_requete .= ' AND ' ;
Line 219... Line 196...
219
		
196
		
220
		$sous_requete = rtrim($sous_requete,' AND ');
197
		$sous_requete = rtrim($sous_requete,' AND ');
221
		return $sous_requete;
198
		return $sous_requete;
Line -... Line 199...
-
 
199
	}
-
 
200
	
-
 
201
	private function fabriquerSousRequeteRechercheGenerale($id_utilisateur, $valeur) {
-
 
202
		$valeur = str_replace("*","%",$valeur);
-
 
203
		$valeur = $this->proteger('%'.$valeur.'%');
-
 
204
		$sous_requete = "(nom_sel LIKE ".$valeur.
-
 
205
			" OR courriel_utilisateur LIKE ".$valeur.
-
 
206
			" OR prenom_utilisateur LIKE ".$valeur.
-
 
207
			" OR nom_utilisateur LIKE ".$valeur.
-
 
208
			" OR nom_sel LIKE ".$valeur.
-
 
209
			" OR nom_sel_nn LIKE ".$valeur.
-
 
210
			" OR nom_ret LIKE ".$valeur.
-
 
211
			" OR nom_ret_nn LIKE ".$valeur.
-
 
212
			" OR nt LIKE ".$valeur.
-
 
213
			" OR famille LIKE ".$valeur.
-
 
214
			" OR zone_geo LIKE ".$valeur.
-
 
215
			" OR ce_zone_geo LIKE ".$valeur.
-
 
216
			" OR date_observation LIKE ".$valeur.
-
 
217
			" OR lieudit LIKE ".$valeur.
-
 
218
			" OR station LIKE ".$valeur.
-
 
219
			" OR milieu LIKE ".$valeur.
-
 
220
			" OR commentaire LIKE ".$valeur.
-
 
221
			" OR transmission LIKE ".$valeur.
-
 
222
			" OR latitude LIKE ".$valeur.
-
 
223
			" OR longitude LIKE ".$valeur.
-
 
224
			" OR mots_cles_texte LIKE ".$valeur.
-
 
225
			")";
-
 
226
		return $sous_requete;
222
	}
227
	}				
223
	
228
	
224
	private function estUnvaleurZeroNulle($valeur) {
229
	private function estUnvaleurZeroNulle($valeur) {
Line 225... Line 230...
225
		return $valeur == "000null";
230
		return $valeur == "000null";