Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 306 → Rev 305

/trunk/services/modules/Recherche.php
54,7 → 54,7
// Construction de la requête
// Il est important de compter le nombre de taxons pour l'affichage
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' COUNT(num_nom) AS nbre FROM '.$referentiel.
$this->construireWhere($p, $referentiel).' ';
$this->construireWhere($p).' ';
// Récupération des résultats
try {
$donnees = $this->bdd->query($requete)->fetch(PDO::FETCH_ASSOC);
87,7 → 87,7
// Construction de la requête
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_sci, auteur, annee, '.
'biblio_origine, nom_addendum, num_nom_retenu, presence, exclure_taxref'.
' FROM '.$referentiel.$this->construireWhere($p, $referentiel).
' FROM '.$referentiel.$this->construireWhere($p).
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'nom_sci ASC').' '.
"LIMIT $this->start, $this->limit ";
123,7 → 123,7
// Construction de la requête
// Il est important de compter le nombre de taxons pour l'affichage
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr FROM '.$referentiel.$this->construireWhere($p, $referentiel).';';
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr FROM '.$referentiel.$this->construireWhere($p).';';
 
// Récupération des résultats
try {
159,8 → 159,7
// Construction de la requête
// si recherche des synonymes
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_sci, auteur, annee, '.
'biblio_origine, nom_addendum, num_nom_retenu, '.(($referentiel == "bdtfx") ? 'num_basionyme' :
'basionyme').', synonyme_mal_applique, presence, exclure_taxref '.
'biblio_origine, nom_addendum, num_nom_retenu, basionyme, synonyme_mal_applique, presence, exclure_taxref '.
' FROM '.$referentiel.' WHERE num_nom_retenu IN ('.$liste_nom.') '.
'ORDER BY nom_sci ASC ';
try {
234,10 → 233,10
'FROM '.$referentiel.' '.
'WHERE num_tax_sup IN '.
'(SELECT num_nom '.
'FROM '.$referentiel.$this->construireWhere($p, $referentiel).') ';
'FROM '.$referentiel.$this->construireWhere($p).') ';
} else {
$requete = 'SELECT count(distinct num_tax_sup) as nbr '.
'FROM '.$referentiel.$this->construireWhere($p, $referentiel).' ';
'FROM '.$referentiel.$this->construireWhere($p).' ';
}
244,7 → 243,7
} else {
// Construction de la requête
// Il est important de compter le nombre de taxons pour l'affichage
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr FROM '.$referentiel.$this->construireWhere($p, $referentiel).';';
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr FROM '.$referentiel.$this->construireWhere($p).';';
}
// Récupération des résultats
try {
288,15 → 287,15
'FROM '.$referentiel.' '.
'WHERE num_tax_sup IN '.
'(SELECT num_nom '.
'FROM '.$referentiel.$this->construireWhere($p, $referentiel).') GROUP BY num_tax_sup';
'FROM '.$referentiel.$this->construireWhere($p).') GROUP BY num_tax_sup';
} else {
$requete = 'SELECT count(distinct num_tax_sup) as nbr, num_tax_sup '.
'FROM '.$referentiel.$this->construireWhere($p, $referentiel).' GROUP BY num_tax_sup';
'FROM '.$referentiel.$this->construireWhere($p).' GROUP BY num_tax_sup';
}
} else {
// Construction de la requête
// Il est important de compter le nombre de taxons pour l'affichage
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr, num_tax_sup FROM '.$referentiel.$this->construireWhere($p, $referentiel).' GROUP BY num_tax_sup;';
$requete = 'SELECT count(DISTINCT num_nom_retenu) as nbr, num_tax_sup FROM '.$referentiel.$this->construireWhere($p).' GROUP BY num_tax_sup;';
}
// Récupération des résultats
try {
340,7 → 339,7
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').
' num_nom, nom_sci, auteur, annee, biblio_origine, nom_addendum,'.
' num_nom_retenu, presence, exclure_taxref, num_tax_sup'.
' FROM '.$referentiel.$this->construireWhere($p, $referentiel).
' FROM '.$referentiel.$this->construireWhere($p).
' ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'nom_sci ASC');
 
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
432,7 → 431,7
// Construction de la requête
// si recherche des synonymes
$requete_nom_retenu = 'SELECT DISTINCT num_nom_retenu FROM '.$referentiel.$this->construireWhere($p, $referentiel)
$requete_nom_retenu = 'SELECT DISTINCT num_nom_retenu FROM '.$referentiel.$this->construireWhere($p)
." ORDER BY nom_sci ASC LIMIT $this->start, $this->limit ".';';
try {
$info = '';
542,7 → 541,7
return $p;
}
private function construireWhere($p, $referentiel) {
private function construireWhere($p) {
// Initialisation de variables
$where = ' WHERE ';
572,6 → 571,7
" OR notes LIKE {$p['mots']} ".
" OR nom_addendum LIKE {$p['mots']} ".
" OR homonyme LIKE {$p['mots']} ".
" OR basionyme LIKE {$p['mots']} ".
" OR synonyme_proparte LIKE {$p['mots']} ".
" OR synonyme_douteux LIKE {$p['mots']} ".
" OR synonyme_mal_applique LIKE {$p['mots']} ".
584,8 → 584,8
" OR presence LIKE {$p['mots']} ".
" OR statut_origine LIKE {$p['mots']} ".
" OR statut_introduction LIKE {$p['mots']} ".
" OR statut_culture LIKE {$p['mots']} ";
$where .= ($referentiel == "bdtfx") ? " OR num_basionyme LIKE {$p['mots']}) " : " OR basionyme LIKE {$p['mots']}) ";
" OR statut_culture LIKE {$p['mots']} ".
') ';
}
}
if (isset($p['sg'])) {