Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 566 Rev 567
Line 79... Line 79...
79
		        	break;
79
		        	break;
80
		        case 'retour.champs' :
80
		        case 'retour.champs' :
81
		        	$this->verifierParamChamps($param, $val);
81
		        	$this->verifierParamChamps($param, $val);
82
		        	break;
82
		        	break;
83
		        case 'distinct' :
83
		        case 'distinct' :
84
		        	$this->distinct = $val;
84
		        	$this->ajouterNomDistinct($val); 
-
 
85
		        	break;
-
 
86
		        case 'masque.fam' :
-
 
87
		        	$this->ajouterFiltreMasque('famille', $val);	
-
 
88
		        	break;
-
 
89
		        case 'masque.prga' :
-
 
90
		        	$this->ajouterFiltreMasque('presence_ga', $val);
-
 
91
		        	break;
-
 
92
		        case 'masque.prco' :
-
 
93
		        	$this->ajouterFiltreMasque('presence_co', $val);
-
 
94
		        	break;
-
 
95
		        case 'masque.sto' :
-
 
96
		        	$this->ajouterFiltreMasque('statut_origine', $val);
-
 
97
		        	break;
-
 
98
		        case 'masque.sti' :
-
 
99
		        	$this->ajouterFiltreMasque('statut_introduction', $val);
-
 
100
		        	break;
-
 
101
		        case 'masque.stc' :
-
 
102
		        	$this->ajouterFiltreMasque('statut_culture', $val);
-
 
103
		        	break;
-
 
104
		        case 'masque.and' :
-
 
105
		        	$this->requete_condition []= " annee > ".$this->getBdd()->proteger($val);
-
 
106
		        	break;
-
 
107
		        case 'masque.anf' :
-
 
108
		        	$this->requete_condition []= " annee < ".$this->getBdd()->proteger($val);
85
		        	break;
109
		        	break;
86
			}
110
			}
87
			$this->ajouterNomDistinct();
-
 
-
 
111
			
88
		}
112
		}
89
	}
113
	}
Line -... Line 114...
-
 
114
	
-
 
115
	
-
 
116
	
-
 
117
	
90
	
118
	
91
	public function verifierParamChamps($param, $val) {
119
	public function verifierParamChamps($param, $val) {
92
		$this->recupererTableSignification('correspondance_champs,champs_api,champs_comp');
120
		$this->recupererTableSignification('correspondance_champs,champs_api,champs_comp');
93
		$champs_demandes = explode(',', $val);
121
		$champs_demandes = explode(',', $val);
94
		$champs_verifies = array();
122
		$champs_verifies = array();
Line 104... Line 132...
104
			$this->requete_champ .= ', '.implode(',', $champs_verifies);
132
			$this->requete_champ .= ', '.implode(',', $champs_verifies);
105
		}
133
		}
106
	}	
134
	}	
Line 107... Line 135...
107
	
135
	
108
	/** Permet de rajouter à la requete sql le parametre distinct. N'est utilisé qu'avec le format oss */
136
	/** Permet de rajouter à la requete sql le parametre distinct. N'est utilisé qu'avec le format oss */
109
	public function ajouterNomDistinct() {
137
	public function ajouterNomDistinct($distinct) {
110
		if (isset($this->distinct)) {
138
		if (isset($distinct)) {
111
			if ($this->distinct == 1 && $this->parametres['retour.format'] == 'oss') {
-
 
112
				if ($this->compo_nom == '') {
139
			if ($distinct == 1 && $this->parametres['retour.format'] == 'oss') {
113
					$this->requete_champ = ' DISTINCT nom_sci ';
-
 
114
				} else {
-
 
115
					$this->requete_champ = ' DISTINCT nom_sci, '.implode(', ',$this->compo_nom);
-
 
116
				}
140
				$this->distinct = ' distinct ';
117
			} elseif ($this->distinct == 1 && $this->parametres['retour.format'] != 'oss') {
141
			} elseif ($distinct == 1 && $this->parametres['retour.format'] != 'oss') {
118
				$e = 'Erreur dans votre requête </br> L\'utilisation du paramètre distinct ne se fait que sous 
142
				$e = 'Erreur dans votre requête </br> L\'utilisation du paramètre distinct ne se fait que sous 
119
					le format oss';
143
					le format oss';
120
				$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
144
				$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
121
			}
145
			}
Line 245... Line 269...
245
	
269
	
246
	public function assemblerLaRequete() {
270
	public function assemblerLaRequete() {
247
		if ( strrpos($this->format_reponse, 'noms/stats/') === false ) {
271
		if ( strrpos($this->format_reponse, 'noms/stats/') === false ) {
248
			$this->mettreAuFormat(); //Ds CommunNomsTaxons.php
272
			$this->mettreAuFormat(); //Ds CommunNomsTaxons.php
249
		}
273
		}
250
		$requete = 	' SELECT '.$this->requete_champ.
274
		$requete = 	' SELECT '.$this->distinct.' '.$this->requete_champ.
251
      				' FROM '.$this->table
275
      				' FROM '.$this->table
252
      				.$this->retournerRequeteCondition()
276
      				.$this->retournerRequeteCondition()
253
      				.$this->requete_group_by
277
      				.$this->requete_group_by
254
      				.$this->formerRequeteLimite();
278
      				.$this->formerRequeteLimite();