Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 167 → Rev 168

/trunk/services/modules/FicheTaxon.php
112,12 → 112,27
/* Méthode pour récupérer les infos sur les parents d'un taxon hybride sélectionné
* Appelée avec les paramètres d'url suivant : /ParentsHybride/ref/num_nom */
public function getElementParentsHybride($ref, $num_nom) {
$requete = "SELECT p1.num_nom AS p1_num, p1.nom_sci AS p1_nom, p1.auteur AS p1_auteur, p1.annee AS p1_annee,
$requete = "";
$requete_parents = "SELECT hybride_parent_01, hybride_parent_02 FROM {$ref} WHERE num_nom = {$num_nom};";
$parents = $this->bdd->query($requete_parents)->fetchAll(PDO::FETCH_ASSOC);
if ($parents[0]['hybride_parent_01'] != '' && $parents[0]['hybride_parent_02'] != '') {
$requete = "SELECT p1.num_nom AS p1_num, p1.nom_sci AS p1_nom, p1.auteur AS p1_auteur, p1.annee AS p1_annee,
p1.biblio_origine AS p1_bib, p1.nom_addendum AS p1_nom_add, p1.num_nom AS p1_num_retenu,
p2.num_nom AS p2_num, p2.nom_sci AS p2_nom, p2.auteur AS p2_auteur, p2.annee AS p2_annee,
p2.biblio_origine AS p2_bib, p2.nom_addendum AS p2_nom_add, p2.num_nom AS p2_num_retenu ".
" FROM {$ref} p1, {$ref} p2, {$ref} h ".
" WHERE p1.num_nom = h.hybride_parent_01 AND p2.num_nom = h.hybride_parent_02 AND h.num_nom = {$num_nom};";
} elseif ($parents[0]['hybride_parent_01'] != '' && $parents[0]['hybride_parent_02'] == '') {
$requete = "SELECT p1.num_nom AS p1_num, p1.nom_sci AS p1_nom, p1.auteur AS p1_auteur, p1.annee AS p1_annee,
p1.biblio_origine AS p1_bib, p1.nom_addendum AS p1_nom_add, p1.num_nom AS p1_num_retenu ".
" FROM {$ref} p1, {$ref} p2, {$ref} h ".
" WHERE p1.num_nom = h.hybride_parent_01 AND h.num_nom = {$num_nom};";
} elseif ($parents[0]['hybride_parent_01'] == '' && $parents[0]['hybride_parent_02'] != '') {
$requete = "SELECT p2.num_nom AS p2_num, p2.nom_sci AS p2_nom, p2.auteur AS p2_auteur, p2.annee AS p2_annee,
p2.biblio_origine AS p2_bib, p2.nom_addendum AS p2_nom_add, p2.num_nom AS p2_num_retenu ".
" FROM {$ref} p1, {$ref} p2, {$ref} h ".
" WHERE p2.num_nom = h.hybride_parent_02 AND h.num_nom = {$num_nom};";
}
$donnees = array();
// Récupération des résultats
147,7 → 162,7
// Récupération des résultats
try {
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
if ($donnees === array()) {
if ($donnees === array() || isset($info[$donnees[0]['num_nom']])) {
$taxonSuperieur = null;
} else {
$taxonSuperieur = $donnees[0]['num_tax_sup'];
169,6 → 184,23
try {
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
if ($donnees === array()) {
} elseif (isset($niveau) && $niveau >= 6) {
if ((isset($this->resultat['niveau']) && $niveau > $this->resultat['niveau']) || !isset($this->resultat['niveau'])) {
$this->resultat['niveau'] = $niveau;
}
foreach ($donnees as $donnee) {
$this->resultat['inf'][$donnee['num_nom']] = $donnee;
$this->resultat['inf'][$donnee['num_nom']]['niveau'] = $niveau;
}
} elseif (count($donnees) >= 100 ||
(isset($this->resultat['inf']) && count($this->resultat['inf'])+count($donnees) >= 100)) {
if ((isset($this->resultat['niveau']) && $niveau > $this->resultat['niveau']) || !isset($this->resultat['niveau'])) {
$this->resultat['niveau'] = $niveau;
}
foreach ($donnees as $donnee) {
$this->resultat['inf'][$donnee['num_nom']] = $donnee;
$this->resultat['inf'][$donnee['num_nom']]['niveau'] = $niveau;
}
} else {
if ((isset($this->resultat['niveau']) && $niveau > $this->resultat['niveau']) || !isset($this->resultat['niveau'])) {
$this->resultat['niveau'] = $niveau;