Subversion Repositories Applications.referentiel

Rev

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

Rev 281 Rev 282
Line 87... Line 87...
87
		
87
		
88
		// Construction de la requête		
88
		// Construction de la requête		
89
		$requete = 	(($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_sci, auteur, annee, '.
89
		$requete = 	(($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_sci, auteur, annee, '.
90
				'biblio_origine, nom_addendum, num_nom_retenu, presence, exclure_taxref'.
90
				'biblio_origine, nom_addendum, num_nom_retenu, presence, exclure_taxref'.
91
				' FROM '.$referentiel.$this->construireWhere($p).
91
				' FROM '.$referentiel.$this->construireWhere($p).
92
				'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby  : 'num_nom ASC, nom_sci ASC').' '.
92
				'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby  : 'nom_sci ASC').' '.
Line 93... Line 93...
93
				"LIMIT $this->start, $this->limit ";
93
				"LIMIT $this->start, $this->limit ";
94
					
94
					
95
		// Récupération des résultats
95
		// Récupération des résultats
Line 160... Line 160...
160
			// Construction de la requête
160
			// Construction de la requête
161
			// si recherche des synonymes
161
			// si recherche des synonymes
162
			$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_sci, auteur, annee, '.
162
			$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_sci, auteur, annee, '.
163
						'biblio_origine, nom_addendum, num_nom_retenu, basionyme, synonyme_mal_applique, presence, exclure_taxref '.
163
						'biblio_origine, nom_addendum, num_nom_retenu, basionyme, synonyme_mal_applique, presence, exclure_taxref '.
164
							' FROM '.$referentiel.' WHERE num_nom_retenu IN ('.$liste_nom.') '.
164
							' FROM '.$referentiel.' WHERE num_nom_retenu IN ('.$liste_nom.') '.
165
							'ORDER BY num_nom ASC ';
165
							'ORDER BY nom_sci ASC ';
166
			try {
166
			try {
167
				$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
167
				$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
168
				$info = $donnees;
168
				$info = $donnees;
169
			} catch (PDOException $e) {
169
			} catch (PDOException $e) {
170
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
170
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
Line 185... Line 185...
185
		$referentiel = substr($p['ref'], 2, -2); 
185
		$referentiel = substr($p['ref'], 2, -2); 
Line 186... Line 186...
186
		
186
		
187
		// Construction de la requête
187
		// Construction de la requête
188
		// si recherche des synonymes
188
		// si recherche des synonymes
189
		$requete_nom_retenu =	'SELECT DISTINCT num_nom_retenu FROM '.$referentiel.$this->construireWhere($p)
189
		$requete_nom_retenu =	'SELECT DISTINCT num_nom_retenu FROM '.$referentiel.$this->construireWhere($p)
190
			."ORDER BY num_nom ASC LIMIT $this->start, $this->limit ".';';
190
			."ORDER BY nom_sci ASC LIMIT $this->start, $this->limit ".';';
191
		try {
191
		try {
192
			$info = '';
192
			$info = '';
Line 193... Line 193...
193
			$donnees_nom_retenu = $this->bdd->query($requete_nom_retenu)->fetchAll(PDO::FETCH_ASSOC);
193
			$donnees_nom_retenu = $this->bdd->query($requete_nom_retenu)->fetchAll(PDO::FETCH_ASSOC);
Line 254... Line 254...
254
					// Suppression des slash
254
					// Suppression des slash
255
					$valeur = stripslashes($valeur);
255
					$valeur = stripslashes($valeur);
Line 256... Line 256...
256
					
256
					
257
					// Utilisation d'une recherche de chaîne exacte
257
					// Utilisation d'une recherche de chaîne exacte
258
					if (preg_match('/^"(.*)"$/', $valeur, $match)) {
258
					if (preg_match('/^"(.*)"$/', $valeur, $match)) {
259
						$valeur = $match[1].'%';
259
						$valeur = $match[1];
260
					} else {
260
					} else {
261
						// Recherche de mots non liés
261
						// Recherche de mots non liés
262
						$mots = explode(' ', $valeur);
262
						$mots = explode(' ', $valeur);
263
						$valeur = implode ('%', $mots).'%';
263
						$valeur = implode (' ', $mots);
264
					}
264
					}
265
					// Mise en place des quotes pour l'interrogation dans la bdd
265
					// Mise en place des quotes pour l'interrogation dans la bdd
266
					$valeur = $this->bdd->quote($valeur);
266
					$valeur = $this->bdd->quote($valeur);
267
				}
267
				}