Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 921 Rev 930
Line 40... Line 40...
40
	public function parserRequeteCriteres($chaine_criteres) {
40
	public function parserRequeteCriteres($chaine_criteres) {
41
		$criteres_parses = array();
41
		$criteres_parses = array();
42
		$criteres = explode("&", $chaine_criteres) ;	
42
		$criteres = explode("&", $chaine_criteres) ;	
Line 43... Line 43...
43
 
43
 
44
		foreach($criteres as &$critere) {
44
		foreach($criteres as &$critere) {
-
 
45
			$nom_valeur = explode("=",$critere) ;
-
 
46
			if(count($nom_valeur) >= 2) {
-
 
47
				$criteres_parses[$nom_valeur[0]] = $nom_valeur[1];
45
			$criteres_parses[] = explode("=",$critere) ;
48
			}
Line 46... Line 49...
46
		}
49
		}
47
		
50
		
Line 62... Line 65...
62
		return $date_formatee;	
65
		return $date_formatee;	
63
	}
66
	}
Line 64... Line 67...
64
 
67
 
Line 65... Line 68...
65
	public function rechercherImages($id_utilisateur, $criteres, $numero_page = 0 , $taille_page = 50) {
68
	public function rechercherImages($id_utilisateur, $criteres, $numero_page = 0 , $taille_page = 50) {
Line 66... Line 69...
66
		
69
		
67
		$requete_recherche_images = 'SELECT * FROM cel_images WHERE ce_utilisateur = "'.$id_utilisateur.'"' ;
-
 
68
 
70
		$requete_recherche_images = 'SELECT * FROM cel_images WHERE ce_utilisateur = '.$this->proteger($id_utilisateur).' ';
Line 69... Line 71...
69
		$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
71
 
70
		
72
		$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
Line 71... Line 73...
71
		$requete_recherche_images .= $sous_requete_recherche;
73
		$requete_recherche_images .= $sous_requete_recherche;
72
		
74
		
Line 73... Line 75...
73
		$debut = $taille_page*$numero_page ;
75
		$debut = $taille_page*$numero_page ;
Line 125... Line 127...
125
	
127
	
Line 126... Line 128...
126
	private function fabriquerSousRequeteRecherche($id_utilisateur, $criteres) {
128
	private function fabriquerSousRequeteRecherche($id_utilisateur, $criteres) {
Line 127... Line 129...
127
		
129
		
128
		$sous_requete = ' AND ';
130
		$sous_requete = ' AND ';
129
		
131
		
130
		foreach($criteres as $nom_valeur)
132
		foreach($criteres as $nom => $valeur)
131
		{
133
		{
Line 132... Line 134...
132
			if(count($nom_valeur) == 0) {
134
			if(trim($nom) == "" || trim($valeur) == "") {
Line 133... Line 135...
133
				continue;	
135
				continue;	
134
			}
136
			}
135
						
137
						
Line 136... Line 138...
136
			switch($nom_valeur[0]) {
138
			switch($nom) {
137
				
139
				
138
				case "mots_cles";
140
				case "mots_cles";
139
					$mots_cles = rtrim($nom_valeur[1], ',') ;
141
					$mots_cles = rtrim($valeur, ',') ;
140
					$mots_cles_liste = explode("," , $mots_cles) ;
142
					$mots_cles_liste = explode(',' , $mots_cles) ;
141
	
143
	
Line 142... Line 144...
142
					foreach($mots_cles_liste as $mot_cle)
144
					foreach($mots_cles_liste as $mot_cle)
143
					{
145
					{
Line 144... Line 146...
144
						$sous_requete .= $nom_valeur[0].' LIKE "%'.$this->proteger($mot_cle).'%"' ;
146
						$sous_requete .= $nom.' LIKE '.$this->proteger('%'.$mot_cle.'%') ;
145
						$sous_requete .= ' AND ' ;
147
						$sous_requete .= ' AND ' ;
146
					}
148
					}
147
				break;
149
				break;
148
				
150
				
149
				case "commentaire":
151
				case "commentaire":
150
					$mots_comment_liste = explode(" " , $nom_valeur[1]) ;
152
					$mots_comment_liste = explode(" " , $valeur) ;
Line 151... Line 153...
151
	
153
	
152
					foreach($mots_comment_liste as $mot_comment)
154
					foreach($mots_comment_liste as $mot_comment)
153
					{
155
					{
154
						$mot_comment = trim($mot_comment) ;
156
						$mot_comment = trim($mot_comment) ;
155
						$sous_requete .= $nom_valeur[0].' LIKE "%'.$this->proteger($mot_comment).'%"' ;
157
						$sous_requete .= $nom.' LIKE '.$this->proteger('%'.$mot_comment.'%') ;
156
						$sous_requete .= ' AND ' ;
158
						$sous_requete .= ' AND ' ;
Line 157... Line 159...
157
					}
159
					}
158
				break;
160
				break;
159
								
161
								
160
				case "annee":
162
				case "annee":
Line 161... Line 163...
161
				case "mois":
163
				case "mois":
162
				case "jour":
164
				case "jour":
163
					$sous_requete .= $this->fabriquerSousRequeteRechercheDate($nom_valeur[0], $nom_valeur[1]) ;
165
					$sous_requete .= $this->fabriquerSousRequeteRechercheDate($nom, $valeur) ;
164
					$sous_requete .= ' AND ' ;
166
					$sous_requete .= ' AND ' ;
Line 165... Line 167...
165
				break;
167
				break;
166
					
168
					
167
				case "tampon":
169
				case "tampon":
168
					$ids_tampon = rtrim($nom_valeur[1], ',') ;
170
					$ids_tampon = rtrim($valeur, ',') ;
169
					$sous_requete .= 'id_images IN ( '.$this->proteger($ids_tampon).')' ;
171
					$sous_requete .= 'id_images IN ( '.$this->proteger($ids_tampon).')' ;
170
				break;
172
				break;
Line 171... Line 173...
171
						
173
						
Line 191... Line 193...
191
		$requete_recherche_taxon .= 'SELECT id_image 
193
		$requete_recherche_taxon .= 'SELECT id_image 
192
								FROM cel_obs_images
194
								FROM cel_obs_images
193
								WHERE id_observation IN ' .
195
								WHERE id_observation IN ' .
194
								'(SELECT id_observation ' .
196
								'(SELECT id_observation ' .
195
									'FROM cel_obs '.
197
									'FROM cel_obs '.
196
									'WHERE ce_utilisateur ="'.$id_utilisateur.'" '.
198
									'WHERE ce_utilisateur = '.$this->proteger($id_utilisateur).' '.
197
									'AND nom_sel LIKE "'.$chaine_recherche.'%" '.
199
									'AND nom_sel LIKE "'.$this->proteger($chaine_recherche.'%').
198
								')';
200
								')';
Line 199... Line 201...
199
								
201
								
Line 200... Line 202...
200
		$requete_recherche_comm = ' commentaire LIKE "%'.$chaine_recherche.'%" ';
202
		$requete_recherche_comm = ' commentaire LIKE '.$this->proteger('%'.chaine_recherche.'%');
Line 201... Line 203...
201
		
203
		
202
		$requete_recherche_generale = '(id_image IN ( '.($requete_recherche_taxon).') OR ('.$requete_recherche_comm.'))' ;
204
		$requete_recherche_generale = '(id_image IN ( '.($requete_recherche_taxon).') OR ('.$requete_recherche_comm.'))' ;
Line 209... Line 211...
209
		$correspondance_champ = array('annee' => 'YEAR','mois' => 'MONTH','jour' => 'DAY');
211
		$correspondance_champ = array('annee' => 'YEAR','mois' => 'MONTH','jour' => 'DAY');
Line 210... Line 212...
210
		
212
		
Line 211... Line 213...
211
		$requete_recherche_date = '';
213
		$requete_recherche_date = '';
212
 
214
 
213
		if(is_numeric($valeur) && $valeur != "00") { 
215
		if(is_numeric($valeur) && $valeur != "00") { 
214
			$requete_recherche_date = $correspondance_champ[$intervalle].'(ci_meta_date) = "'.$valeur.'" ';
216
			$requete_recherche_date = $correspondance_champ[$intervalle].'(ci_meta_date) = '.$this->proteger($valeur).' ';
215
		} else {
217
		} else {
Line 216... Line 218...
216
			$requete_recherche_date = '(date_prise_de_vue IS NULL OR date_prise_de_vue = "0000-00-00")';
218
			$requete_recherche_date = '(date_prise_de_vue IS NULL OR date_prise_de_vue = "0000-00-00")';