Subversion Repositories Applications.referentiel

Rev

Rev 149 | Rev 207 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 149 Rev 168
Line 110... Line 110...
110
	}
110
	}
Line 111... Line 111...
111
 
111
 
112
	/* Méthode pour récupérer les infos sur les parents d'un taxon hybride sélectionné
112
	/* Méthode pour récupérer les infos sur les parents d'un taxon hybride sélectionné
113
	* Appelée avec les paramètres d'url suivant : /ParentsHybride/ref/num_nom	*/
113
	* Appelée avec les paramètres d'url suivant : /ParentsHybride/ref/num_nom	*/
-
 
114
	public function getElementParentsHybride($ref, $num_nom) {
-
 
115
		$requete = "";
-
 
116
		$requete_parents = "SELECT hybride_parent_01, hybride_parent_02 FROM {$ref} WHERE num_nom = {$num_nom};";
-
 
117
		$parents = $this->bdd->query($requete_parents)->fetchAll(PDO::FETCH_ASSOC);
114
	public function getElementParentsHybride($ref, $num_nom) {
118
		if ($parents[0]['hybride_parent_01'] != '' && $parents[0]['hybride_parent_02'] != '') {
115
		$requete =	"SELECT p1.num_nom AS p1_num, p1.nom_sci AS p1_nom, p1.auteur AS p1_auteur, p1.annee AS p1_annee, 
119
			$requete =	"SELECT p1.num_nom AS p1_num, p1.nom_sci AS p1_nom, p1.auteur AS p1_auteur, p1.annee AS p1_annee, 
116
					p1.biblio_origine AS p1_bib, p1.nom_addendum AS p1_nom_add, p1.num_nom AS p1_num_retenu, 
120
					p1.biblio_origine AS p1_bib, p1.nom_addendum AS p1_nom_add, p1.num_nom AS p1_num_retenu, 
117
					p2.num_nom AS p2_num, p2.nom_sci AS p2_nom,	p2.auteur AS p2_auteur, p2.annee AS p2_annee, 
121
					p2.num_nom AS p2_num, p2.nom_sci AS p2_nom,	p2.auteur AS p2_auteur, p2.annee AS p2_annee, 
118
					p2.biblio_origine AS p2_bib, p2.nom_addendum AS p2_nom_add, p2.num_nom AS p2_num_retenu ".
122
					p2.biblio_origine AS p2_bib, p2.nom_addendum AS p2_nom_add, p2.num_nom AS p2_num_retenu ".
119
					" FROM {$ref} p1, {$ref} p2, {$ref} h ".
123
					" FROM {$ref} p1, {$ref} p2, {$ref} h ".
-
 
124
					" WHERE p1.num_nom = h.hybride_parent_01 AND p2.num_nom = h.hybride_parent_02 AND h.num_nom = {$num_nom};";
-
 
125
		} elseif ($parents[0]['hybride_parent_01'] != '' && $parents[0]['hybride_parent_02'] == '') {
-
 
126
			$requete =	"SELECT p1.num_nom AS p1_num, p1.nom_sci AS p1_nom, p1.auteur AS p1_auteur, p1.annee AS p1_annee, 
-
 
127
					p1.biblio_origine AS p1_bib, p1.nom_addendum AS p1_nom_add, p1.num_nom AS p1_num_retenu ".
-
 
128
					" FROM {$ref} p1, {$ref} p2, {$ref} h ".
-
 
129
					" WHERE p1.num_nom = h.hybride_parent_01 AND h.num_nom = {$num_nom};";
-
 
130
		} elseif ($parents[0]['hybride_parent_01'] == '' && $parents[0]['hybride_parent_02'] != '') {
-
 
131
			$requete =	"SELECT p2.num_nom AS p2_num, p2.nom_sci AS p2_nom,	p2.auteur AS p2_auteur, p2.annee AS p2_annee, 
-
 
132
					p2.biblio_origine AS p2_bib, p2.nom_addendum AS p2_nom_add, p2.num_nom AS p2_num_retenu ".
-
 
133
					" FROM {$ref} p1, {$ref} p2, {$ref} h ".
-
 
134
					" WHERE p2.num_nom = h.hybride_parent_02 AND h.num_nom = {$num_nom};";
120
					" WHERE p1.num_nom = h.hybride_parent_01 AND p2.num_nom = h.hybride_parent_02 AND h.num_nom = {$num_nom};";
135
		}
Line 121... Line 136...
121
		$donnees = array();
136
		$donnees = array();
122
		
137
		
123
		// Récupération des résultats
138
		// Récupération des résultats
Line 145... Line 160...
145
						." biblio_origine, nom_addendum FROM {$ref} WHERE num_nom = {$taxonSuperieur};"; 
160
						." biblio_origine, nom_addendum FROM {$ref} WHERE num_nom = {$taxonSuperieur};"; 
Line 146... Line 161...
146
			
161
			
147
			// Récupération des résultats
162
			// Récupération des résultats
148
			try {
163
			try {
149
				$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
164
				$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
150
				if ($donnees === array()) {
165
				if ($donnees === array() || isset($info[$donnees[0]['num_nom']])) {
151
					$taxonSuperieur = null;
166
					$taxonSuperieur = null;
152
				} else {
167
				} else {
153
					$taxonSuperieur = $donnees[0]['num_tax_sup'];
168
					$taxonSuperieur = $donnees[0]['num_tax_sup'];
154
					$info[$donnees[0]['num_nom']] = $donnees[0]; 
169
					$info[$donnees[0]['num_nom']] = $donnees[0]; 
Line 167... Line 182...
167
					'WHERE  num_tax_sup = '.$num_nom.";";
182
					'WHERE  num_tax_sup = '.$num_nom.";";
168
		// Récupération des résultats
183
		// Récupération des résultats
169
		try {
184
		try {
170
			$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
185
			$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
171
			if ($donnees === array()) {
186
			if ($donnees === array()) {
-
 
187
			} elseif (isset($niveau) && $niveau >= 6) {
-
 
188
				if ((isset($this->resultat['niveau']) && $niveau > $this->resultat['niveau']) || !isset($this->resultat['niveau'])) {
-
 
189
					$this->resultat['niveau'] = $niveau;
-
 
190
				}
-
 
191
				foreach ($donnees as $donnee) {
-
 
192
					$this->resultat['inf'][$donnee['num_nom']] = $donnee;
-
 
193
					$this->resultat['inf'][$donnee['num_nom']]['niveau'] = $niveau;
-
 
194
				}
-
 
195
			} elseif (count($donnees) >= 100 || 
-
 
196
				(isset($this->resultat['inf']) && count($this->resultat['inf'])+count($donnees) >= 100)) {
-
 
197
				if ((isset($this->resultat['niveau']) && $niveau > $this->resultat['niveau']) || !isset($this->resultat['niveau'])) {
-
 
198
					$this->resultat['niveau'] = $niveau;
-
 
199
				}
-
 
200
				foreach ($donnees as $donnee) {
-
 
201
					$this->resultat['inf'][$donnee['num_nom']] = $donnee;
-
 
202
					$this->resultat['inf'][$donnee['num_nom']]['niveau'] = $niveau;
-
 
203
				}
172
			} else {
204
			} else {
173
				if ((isset($this->resultat['niveau']) && $niveau > $this->resultat['niveau']) || !isset($this->resultat['niveau'])) {
205
				if ((isset($this->resultat['niveau']) && $niveau > $this->resultat['niveau']) || !isset($this->resultat['niveau'])) {
174
					$this->resultat['niveau'] = $niveau;
206
					$this->resultat['niveau'] = $niveau;
175
				}
207
				}
176
				$niveau ++;
208
				$niveau ++;