112,6 → 112,10 |
/* 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 = ""; |
$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, |
118,6 → 122,17 |
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; |