Subversion Repositories eFlore/Applications.cel

Rev

Rev 2043 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2043 Rev 2059
Line 240... Line 240...
240
					}
240
					}
241
					$sous_requete .= ' AND ' ;
241
					$sous_requete .= ' AND ' ;
242
					break;
242
					break;
243
				case 'id_mots_cles':
243
				case 'id_mots_cles':
244
					$liste_mc = '"'.str_replace(';','","',$valeur).'"';
244
					$liste_mc = '"'.str_replace(';','","',$valeur).'"';
245
					$sous_requete .= '' ;
-
 
246
					$sous_requete .= 'id_observation IN '.
245
					$tpl_sous_requete = GestionMotsClesChemin::obtenirTemplateRequeteMotsClesTexte('obs');
247
										'(SELECT id_element_lie 
-
 
248
											FROM cel_mots_cles_obs_liaison
-
 
249
											WHERE id_mot_cle IN ('.$liste_mc.') '.
246
					$sous_requete .= 'id_observation IN ('.sprintf($tpl_sous_requete, $liste_mc).')';
250
										
-
 
251
										')';
-
 
252
					$sous_requete .= ' AND ' ;
247
					$sous_requete .= ' AND ' ;
253
					break;
248
					break;
254
				case 'recherche':
249
				case 'recherche':
255
					$sous_requete .= $this->fabriquerSousRequeteRechercheGenerale($id_utilisateur, $valeur);
250
					$sous_requete .= $this->fabriquerSousRequeteRechercheGenerale($id_utilisateur, $valeur);
256
					$sous_requete .= ' AND ';
251
					$sous_requete .= ' AND ';
Line 330... Line 325...
330
			")";
325
			")";
331
		return $sous_requete;
326
		return $sous_requete;
332
	}
327
	}
Line 333... Line 328...
333
 
328
 
-
 
329
	private function creerSousRequeteMotsCles($mot_cle) {
-
 
330
		//TODO: une requête plus efficace serait possible en utilisant
334
	private function creerSousRequeteMotsCles($mot_cle) {
331
		// les vraies tables de mots clés et en faisant disparaitre ce champ maudit
335
		$requete = '';
332
		$requete = '';
336
		if (preg_match('/.*OU.*/', $mot_cle)) {
333
		if (preg_match('/.*OU.*/', $mot_cle)) {
337
			$mots_cles_tab = explode('OU',$mot_cle);
334
			$mots_cles_tab = explode('OU',$mot_cle);
338
			foreach($mots_cles_tab as $mot_cle_item) {
335
			foreach($mots_cles_tab as $mot_cle_item) {