Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 335 Rev 336
Line 140... Line 140...
140
	}
140
	}
Line 141... Line 141...
141
	
141
	
142
	private function genererChpFamille() {
142
	private function genererChpFamille() {
143
		$this->initialiserGenerationChamps();
143
		$this->initialiserGenerationChamps();
144
		$this->preparerTablePrChpFamille();
144
		$this->preparerTablePrChpFamille();
145
		$generateur = new GenerateurNomSciHtml();
145
		$resultats = $this->recupererTuplesPrChpFamille();
146
		$resultats = $this->recupererTuples();
146
		$famille = array();
-
 
147
		$noms = array();
147
		$classif = array();
148
		$introuvables = array();
-
 
149
		foreach ($resultats as $nom) {
-
 
150
			$nn = $nom['num_nom'];
148
		foreach ($resultats as $nom) {
151
			$nts = $nom['num_tax_sup'];
-
 
152
			$rg = $nom['rang'];
-
 
153
			if ($rg == '180') {
-
 
154
				$famille[$nn] = $nom['nom_sci'];
-
 
155
			} else {
-
 
156
				if (isset($noms[$nts])) {
-
 
157
					$noms[$nn] = $noms[$nts];
-
 
158
				} else if (isset($famille[$nts])) {
-
 
159
					$noms[$nn] = $famille[$nts];
-
 
160
				} else {
-
 
161
					$introuvables[] = $nn;
-
 
162
				}
149
			if ($nom['rang'])
163
			}
150
			$this->afficherAvancement("Insertion des noms de famille dans la base par paquet de {$this->pasInsertion} en cours");
164
			$this->afficherAvancement("Attribution de leur famille aux noms en cours");
151
			if ($this->stopperLaBoucle($this->getParametre('t'))) break;
165
			if ($this->stopperLaBoucle($this->getParametre('t'))) break;
-
 
166
		}
-
 
167
		echo "\n";
-
 
168
		if ($introuvables != 0) {
-
 
169
			$introuvables = implode(', ', $introuvables);
-
 
170
			echo "Parent introuvable pour les noms : $introuvables\n";
-
 
171
		}
152
		}
172
		$this->lancerRequeteModificationPrChpFamille($noms);
Line 153... Line 173...
153
	}
173
	}
154
	
174
	
155
	private function preparerTablePrChpFamille() {
175
	private function preparerTablePrChpFamille() {
Line 165... Line 185...
165
	
185
	
166
	private function recupererTuplesPrChpFamille() {
186
	private function recupererTuplesPrChpFamille() {
167
		$requete = 'SELECT num_nom, num_tax_sup, rang, nom_sci '.
187
		$requete = 'SELECT num_nom, num_tax_sup, rang, nom_sci '.
168
				"FROM {$this->table} ".
188
				"FROM {$this->table} ".
-
 
189
				"WHERE rang >= 180 ".
169
				"WHERE rang >= 180 ".
190
				"	AND num_tax_sup != '' ".
170
				"ORDER BY rang ASC,num_tax_sup ASC ";
191
				"ORDER BY rang ASC,num_tax_sup ASC ";
171
		$resultat = $this->getBdd()->recupererTous($requete);
192
		$resultat = $this->getBdd()->recupererTous($requete);
172
		return $resultat;
193
		return $resultat;
-
 
194
	}
-
 
195
	
-
 
196
	private function lancerRequeteModificationPrChpFamille($noms) {
-
 
197
		foreach ($noms as $id => $famille) {
-
 
198
			$famille = $this->getBdd()->proteger($famille);
-
 
199
			$requete = "UPDATE {$this->table} ".
-
 
200
					"SET famille = $famille ".
-
 
201
					"WHERE num_nom = $id ";
-
 
202
			$resultat = $this->getBdd()->requeter($requete);
-
 
203
			if ($resultat === false) {
-
 
204
				throw new Exception("Erreur d'insertion pour le tuple $id");
-
 
205
			}
-
 
206
			$this->afficherAvancement("Insertion des noms de famille dans la base en cours");
-
 
207
		}
-
 
208
		echo "\n";
Line 173... Line 209...
173
	}
209
	}
174
 
210
 
175
	private function genererDonneesTestMultiVersion() {
211
	private function genererDonneesTestMultiVersion() {