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 |
}
|