Line 52... |
Line 52... |
52 |
$referentiel = substr($p['ref'], 2, -2);
|
52 |
$referentiel = substr($p['ref'], 2, -2);
|
Line 53... |
Line 53... |
53 |
|
53 |
|
54 |
// Construction de la requête
|
54 |
// Construction de la requête
|
55 |
// Il est important de compter le nombre de taxons pour l'affichage
|
55 |
// Il est important de compter le nombre de taxons pour l'affichage
|
56 |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' COUNT(num_nom) AS nbre FROM '.$referentiel.
|
56 |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' COUNT(num_nom) AS nbre FROM '.$referentiel.
|
57 |
$this->construireWhere($p).' ';
|
57 |
$this->construireWhere($p, $referentiel).' ';
|
58 |
// Récupération des résultats
|
58 |
// Récupération des résultats
|
59 |
try {
|
59 |
try {
|
60 |
$donnees = $this->bdd->query($requete)->fetch(PDO::FETCH_ASSOC);
|
60 |
$donnees = $this->bdd->query($requete)->fetch(PDO::FETCH_ASSOC);
|
61 |
if ($donnees === false) {
|
61 |
if ($donnees === false) {
|
Line 85... |
Line 85... |
85 |
$referentiel = substr($p['ref'], 2, -2);
|
85 |
$referentiel = substr($p['ref'], 2, -2);
|
Line 86... |
Line 86... |
86 |
|
86 |
|
87 |
// Construction de la requête
|
87 |
// Construction de la requête
|
88 |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_sci, auteur, annee, '.
|
88 |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_sci, auteur, annee, '.
|
89 |
'biblio_origine, nom_addendum, num_nom_retenu, presence, exclure_taxref'.
|
89 |
'biblio_origine, nom_addendum, num_nom_retenu, presence, exclure_taxref'.
|
90 |
' FROM '.$referentiel.$this->construireWhere($p).
|
90 |
' FROM '.$referentiel.$this->construireWhere($p, $referentiel).
|
91 |
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'nom_sci ASC').' '.
|
91 |
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'nom_sci ASC').' '.
|
Line 92... |
Line 92... |
92 |
"LIMIT $this->start, $this->limit ";
|
92 |
"LIMIT $this->start, $this->limit ";
|
93 |
|
93 |
|
Line 121... |
Line 121... |
121 |
$referentiel = substr($p['ref'], 2, -2);
|
121 |
$referentiel = substr($p['ref'], 2, -2);
|
Line 122... |
Line 122... |
122 |
|
122 |
|
123 |
|
123 |
|
124 |
// Construction de la requête
|
124 |
// Construction de la requête
|
Line 125... |
Line 125... |
125 |
// Il est important de compter le nombre de taxons pour l'affichage
|
125 |
// Il est important de compter le nombre de taxons pour l'affichage
|
126 |
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr FROM '.$referentiel.$this->construireWhere($p).';';
|
126 |
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr FROM '.$referentiel.$this->construireWhere($p, $referentiel).';';
|
127 |
|
127 |
|
128 |
// Récupération des résultats
|
128 |
// Récupération des résultats
|
Line 157... |
Line 157... |
157 |
$liste_nom = $this->getNomRetenu($param);
|
157 |
$liste_nom = $this->getNomRetenu($param);
|
158 |
if ($liste_nom != '') {
|
158 |
if ($liste_nom != '') {
|
159 |
// Construction de la requête
|
159 |
// Construction de la requête
|
160 |
// si recherche des synonymes
|
160 |
// si recherche des synonymes
|
161 |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_sci, auteur, annee, '.
|
161 |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_sci, auteur, annee, '.
|
162 |
'biblio_origine, nom_addendum, num_nom_retenu, basionyme, synonyme_mal_applique, presence, exclure_taxref '.
|
162 |
'biblio_origine, nom_addendum, num_nom_retenu, '.(($referentiel == "bdtfx") ? 'num_basionyme' :
|
- |
|
163 |
'basionyme').', synonyme_mal_applique, presence, exclure_taxref '.
|
163 |
' FROM '.$referentiel.' WHERE num_nom_retenu IN ('.$liste_nom.') '.
|
164 |
' FROM '.$referentiel.' WHERE num_nom_retenu IN ('.$liste_nom.') '.
|
164 |
'ORDER BY nom_sci ASC ';
|
165 |
'ORDER BY nom_sci ASC ';
|
165 |
try {
|
166 |
try {
|
166 |
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
|
167 |
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
|
167 |
$info = $donnees;
|
168 |
$info = $donnees;
|
Line 231... |
Line 232... |
231 |
if ($p['classif'] == 'infra') {
|
232 |
if ($p['classif'] == 'infra') {
|
232 |
$requete = 'SELECT COUNT(num_nom) as nbr '.
|
233 |
$requete = 'SELECT COUNT(num_nom) as nbr '.
|
233 |
'FROM '.$referentiel.' '.
|
234 |
'FROM '.$referentiel.' '.
|
234 |
'WHERE num_tax_sup IN '.
|
235 |
'WHERE num_tax_sup IN '.
|
235 |
'(SELECT num_nom '.
|
236 |
'(SELECT num_nom '.
|
236 |
'FROM '.$referentiel.$this->construireWhere($p).') ';
|
237 |
'FROM '.$referentiel.$this->construireWhere($p, $referentiel).') ';
|
237 |
} else {
|
238 |
} else {
|
238 |
$requete = 'SELECT count(distinct num_tax_sup) as nbr '.
|
239 |
$requete = 'SELECT count(distinct num_tax_sup) as nbr '.
|
239 |
'FROM '.$referentiel.$this->construireWhere($p).' ';
|
240 |
'FROM '.$referentiel.$this->construireWhere($p, $referentiel).' ';
|
Line 240... |
Line 241... |
240 |
|
241 |
|
Line 241... |
Line 242... |
241 |
}
|
242 |
}
|
242 |
|
243 |
|
243 |
} else {
|
244 |
} else {
|
244 |
// Construction de la requête
|
245 |
// Construction de la requête
|
245 |
// Il est important de compter le nombre de taxons pour l'affichage
|
246 |
// Il est important de compter le nombre de taxons pour l'affichage
|
246 |
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr FROM '.$referentiel.$this->construireWhere($p).';';
|
247 |
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr FROM '.$referentiel.$this->construireWhere($p, $referentiel).';';
|
247 |
}
|
248 |
}
|
248 |
// Récupération des résultats
|
249 |
// Récupération des résultats
|
249 |
try {
|
250 |
try {
|
Line 285... |
Line 286... |
285 |
if ($p['classif'] == 'infra') {
|
286 |
if ($p['classif'] == 'infra') {
|
286 |
$requete = 'SELECT COUNT(num_nom) as nbr, num_tax_sup '.
|
287 |
$requete = 'SELECT COUNT(num_nom) as nbr, num_tax_sup '.
|
287 |
'FROM '.$referentiel.' '.
|
288 |
'FROM '.$referentiel.' '.
|
288 |
'WHERE num_tax_sup IN '.
|
289 |
'WHERE num_tax_sup IN '.
|
289 |
'(SELECT num_nom '.
|
290 |
'(SELECT num_nom '.
|
290 |
'FROM '.$referentiel.$this->construireWhere($p).') GROUP BY num_tax_sup';
|
291 |
'FROM '.$referentiel.$this->construireWhere($p, $referentiel).') GROUP BY num_tax_sup';
|
291 |
} else {
|
292 |
} else {
|
292 |
$requete = 'SELECT count(distinct num_tax_sup) as nbr, num_tax_sup '.
|
293 |
$requete = 'SELECT count(distinct num_tax_sup) as nbr, num_tax_sup '.
|
293 |
'FROM '.$referentiel.$this->construireWhere($p).' GROUP BY num_tax_sup';
|
294 |
'FROM '.$referentiel.$this->construireWhere($p, $referentiel).' GROUP BY num_tax_sup';
|
294 |
}
|
295 |
}
|
295 |
} else {
|
296 |
} else {
|
296 |
// Construction de la requête
|
297 |
// Construction de la requête
|
297 |
// Il est important de compter le nombre de taxons pour l'affichage
|
298 |
// Il est important de compter le nombre de taxons pour l'affichage
|
298 |
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr, num_tax_sup FROM '.$referentiel.$this->construireWhere($p).' GROUP BY num_tax_sup;';
|
299 |
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr, num_tax_sup FROM '.$referentiel.$this->construireWhere($p, $referentiel).' GROUP BY num_tax_sup;';
|
299 |
}
|
300 |
}
|
300 |
// Récupération des résultats
|
301 |
// Récupération des résultats
|
301 |
try {
|
302 |
try {
|
302 |
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
|
303 |
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
|
303 |
if ($donnees === false) {
|
304 |
if ($donnees === false) {
|
Line 337... |
Line 338... |
337 |
|
338 |
|
338 |
// Récupérer les informations du nom sélectionné
|
339 |
// Récupérer les informations du nom sélectionné
|
339 |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').
|
340 |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').
|
340 |
' num_nom, nom_sci, auteur, annee, biblio_origine, nom_addendum,'.
|
341 |
' num_nom, nom_sci, auteur, annee, biblio_origine, nom_addendum,'.
|
341 |
' num_nom_retenu, presence, exclure_taxref, num_tax_sup'.
|
342 |
' num_nom_retenu, presence, exclure_taxref, num_tax_sup'.
|
342 |
' FROM '.$referentiel.$this->construireWhere($p).
|
343 |
' FROM '.$referentiel.$this->construireWhere($p, $referentiel).
|
Line 343... |
Line 344... |
343 |
' ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'nom_sci ASC');
|
344 |
' ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'nom_sci ASC');
|
Line 344... |
Line 345... |
344 |
|
345 |
|
Line 429... |
Line 430... |
429 |
$p = $this->pretraiterParametresUrl($param);
|
430 |
$p = $this->pretraiterParametresUrl($param);
|
430 |
$referentiel = substr($p['ref'], 2, -2);
|
431 |
$referentiel = substr($p['ref'], 2, -2);
|
Line 431... |
Line 432... |
431 |
|
432 |
|
432 |
// Construction de la requête
|
433 |
// Construction de la requête
|
433 |
// si recherche des synonymes
|
434 |
// si recherche des synonymes
|
434 |
$requete_nom_retenu = 'SELECT DISTINCT num_nom_retenu FROM '.$referentiel.$this->construireWhere($p)
|
435 |
$requete_nom_retenu = 'SELECT DISTINCT num_nom_retenu FROM '.$referentiel.$this->construireWhere($p, $referentiel)
|
435 |
." ORDER BY nom_sci ASC LIMIT $this->start, $this->limit ".';';
|
436 |
." ORDER BY nom_sci ASC LIMIT $this->start, $this->limit ".';';
|
436 |
try {
|
437 |
try {
|
437 |
$info = '';
|
438 |
$info = '';
|
Line 539... |
Line 540... |
539 |
}
|
540 |
}
|
Line 540... |
Line 541... |
540 |
|
541 |
|
541 |
return $p;
|
542 |
return $p;
|
Line 542... |
Line 543... |
542 |
}
|
543 |
}
|
543 |
|
544 |
|
544 |
private function construireWhere($p) {
|
545 |
private function construireWhere($p, $referentiel) {
|
Line 545... |
Line 546... |
545 |
// Initialisation de variables
|
546 |
// Initialisation de variables
|
546 |
$where = ' WHERE ';
|
547 |
$where = ' WHERE ';
|
Line 569... |
Line 570... |
569 |
" OR annee LIKE {$p['mots']} ".
|
570 |
" OR annee LIKE {$p['mots']} ".
|
570 |
" OR biblio_origine LIKE {$p['mots']} ".
|
571 |
" OR biblio_origine LIKE {$p['mots']} ".
|
571 |
" OR notes LIKE {$p['mots']} ".
|
572 |
" OR notes LIKE {$p['mots']} ".
|
572 |
" OR nom_addendum LIKE {$p['mots']} ".
|
573 |
" OR nom_addendum LIKE {$p['mots']} ".
|
573 |
" OR homonyme LIKE {$p['mots']} ".
|
574 |
" OR homonyme LIKE {$p['mots']} ".
|
574 |
" OR basionyme LIKE {$p['mots']} ".
|
- |
|
575 |
" OR synonyme_proparte LIKE {$p['mots']} ".
|
575 |
" OR synonyme_proparte LIKE {$p['mots']} ".
|
576 |
" OR synonyme_douteux LIKE {$p['mots']} ".
|
576 |
" OR synonyme_douteux LIKE {$p['mots']} ".
|
577 |
" OR synonyme_mal_applique LIKE {$p['mots']} ".
|
577 |
" OR synonyme_mal_applique LIKE {$p['mots']} ".
|
578 |
" OR synonyme_orthographique LIKE {$p['mots']} ".
|
578 |
" OR synonyme_orthographique LIKE {$p['mots']} ".
|
579 |
" OR hybride_parent_01 LIKE {$p['mots']} ".
|
579 |
" OR hybride_parent_01 LIKE {$p['mots']} ".
|
Line 582... |
Line 582... |
582 |
" OR hybride_parent_02_notes LIKE {$p['mots']} ".
|
582 |
" OR hybride_parent_02_notes LIKE {$p['mots']} ".
|
583 |
" OR nom_francais LIKE {$p['mots']} ".
|
583 |
" OR nom_francais LIKE {$p['mots']} ".
|
584 |
" OR presence LIKE {$p['mots']} ".
|
584 |
" OR presence LIKE {$p['mots']} ".
|
585 |
" OR statut_origine LIKE {$p['mots']} ".
|
585 |
" OR statut_origine LIKE {$p['mots']} ".
|
586 |
" OR statut_introduction LIKE {$p['mots']} ".
|
586 |
" OR statut_introduction LIKE {$p['mots']} ".
|
587 |
" OR statut_culture LIKE {$p['mots']} ".
|
587 |
" OR statut_culture LIKE {$p['mots']} ";
|
588 |
') ';
|
- |
|
- |
|
588 |
$where .= ($referentiel == "bdtfx") ? " OR num_basionyme LIKE {$p['mots']}) " : " OR basionyme LIKE {$p['mots']}) ";
|
589 |
}
|
589 |
}
|
590 |
}
|
590 |
}
|
591 |
if (isset($p['sg'])) {
|
591 |
if (isset($p['sg'])) {
|
592 |
$where .= "AND nom_supra_generique LIKE {$p['sg']} ";
|
592 |
$where .= "AND nom_supra_generique LIKE {$p['sg']} ";
|
593 |
}
|
593 |
}
|