142,15 → 142,35 |
private function genererChpFamille() { |
$this->initialiserGenerationChamps(); |
$this->preparerTablePrChpFamille(); |
$generateur = new GenerateurNomSciHtml(); |
$resultats = $this->recupererTuples(); |
$classif = array(); |
$resultats = $this->recupererTuplesPrChpFamille(); |
$famille = array(); |
$noms = array(); |
$introuvables = array(); |
foreach ($resultats as $nom) { |
if ($nom['rang']) |
$this->afficherAvancement("Insertion des noms de famille dans la base par paquet de {$this->pasInsertion} en cours"); |
$nn = $nom['num_nom']; |
$nts = $nom['num_tax_sup']; |
$rg = $nom['rang']; |
if ($rg == '180') { |
$famille[$nn] = $nom['nom_sci']; |
} else { |
if (isset($noms[$nts])) { |
$noms[$nn] = $noms[$nts]; |
} else if (isset($famille[$nts])) { |
$noms[$nn] = $famille[$nts]; |
} else { |
$introuvables[] = $nn; |
} |
} |
$this->afficherAvancement("Attribution de leur famille aux noms en cours"); |
if ($this->stopperLaBoucle($this->getParametre('t'))) break; |
} |
echo "\n"; |
if ($introuvables != 0) { |
$introuvables = implode(', ', $introuvables); |
echo "Parent introuvable pour les noms : $introuvables\n"; |
} |
$this->lancerRequeteModificationPrChpFamille($noms); |
} |
|
private function preparerTablePrChpFamille() { |
$requete = "SHOW COLUMNS FROM {$this->table} LIKE 'famille' "; |
167,11 → 187,27 |
$requete = 'SELECT num_nom, num_tax_sup, rang, nom_sci '. |
"FROM {$this->table} ". |
"WHERE rang >= 180 ". |
" AND num_tax_sup != '' ". |
"ORDER BY rang ASC,num_tax_sup ASC "; |
$resultat = $this->getBdd()->recupererTous($requete); |
return $resultat; |
} |
|
private function lancerRequeteModificationPrChpFamille($noms) { |
foreach ($noms as $id => $famille) { |
$famille = $this->getBdd()->proteger($famille); |
$requete = "UPDATE {$this->table} ". |
"SET famille = $famille ". |
"WHERE num_nom = $id "; |
$resultat = $this->getBdd()->requeter($requete); |
if ($resultat === false) { |
throw new Exception("Erreur d'insertion pour le tuple $id"); |
} |
$this->afficherAvancement("Insertion des noms de famille dans la base en cours"); |
} |
echo "\n"; |
} |
|
private function genererDonneesTestMultiVersion() { |
$contenuSql = $this->recupererContenu(Config::get('chemins.structureSqlTest')); |
$this->executerScripSql($contenuSql); |