138,7 → 138,7 |
} |
} |
} |
|
|
private function genererChpFamille() { |
$this->initialiserGenerationChamps(); |
$this->preparerTablePrChpFamille(); |
146,32 → 146,69 |
$famille = array(); |
$noms = array(); |
$introuvables = array(); |
foreach ($resultats as $nom) { |
$introuvablesSyno = array(); |
foreach ($resultats as $id => $nom) { |
$nn = $nom['num_nom']; |
$nnr = $nom['num_nom_retenu']; |
$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]; |
if ($nnr != '') { |
if ($rg == '180') { |
$famille[$nn] = $nom['nom_sci']; |
} else { |
$introuvables[] = $nn; |
if ($nn == $nnr) {// nom retenu |
if (isset($noms[$nts])) { |
$noms[$nn] = $noms[$nts]; |
} else if (isset($famille[$nts])) { |
$noms[$nn] = $famille[$nts]; |
} else { |
$introuvables[] = $nn; |
} |
} else {// nom synonyme |
if (isset($noms[$nnr])) { |
$noms[$nn] = $noms[$nnr]; |
} else { |
$introuvablesSyno[] = $nom; |
} |
} |
} |
} |
unset($resultats[$id]); |
$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"; |
|
foreach ($introuvablesSyno as $id => $nom) { |
$nn = $nom['num_nom']; |
$nnr = $nom['num_nom_retenu']; |
if (isset($noms[$nnr])) { |
$noms[$nn] = $noms[$nnr]; |
} else { |
$introuvables[] = $nn; |
} |
unset($introuvablesSyno[$id]); |
$this->afficherAvancement("Attribution de leur famille aux synonymes en cours"); |
} |
echo "\n"; |
|
if (count($introuvables) != 0) { |
$introuvablesNbre = count($introuvables); |
echo "Famille introuvable pour $introuvablesNbre noms ! Voir le log.\n"; |
|
$logContenu = implode(", \n", $introuvables); |
$logFichier = realpath(dirname(__FILE__)).'/log/famille_introuvable.log'; |
echo $logFichier."\n"; |
file_put_contents($logFichier, $logContenu); |
} |
if (count($introuvablesSyno) != 0) { |
//$introuvablesSyno = implode(', ', $introuvablesSyno); |
$introuvablesSyno = count($introuvablesSyno); |
echo "Synonyme avec nom retenu introuvable : $introuvablesSyno\n"; |
} |
$this->lancerRequeteModificationPrChpFamille($noms); |
} |
|
|
private function preparerTablePrChpFamille() { |
$requete = "SHOW COLUMNS FROM {$this->table} LIKE 'famille' "; |
$resultat = $this->getBdd()->recuperer($requete); |
182,17 → 219,17 |
$this->getBdd()->requeter($requete); |
} |
} |
|
|
private function recupererTuplesPrChpFamille() { |
$requete = 'SELECT num_nom, num_tax_sup, rang, nom_sci '. |
$requete = 'SELECT num_nom, num_nom_retenu, num_tax_sup, rang, nom_sci '. |
"FROM {$this->table} ". |
"WHERE rang >= 180 ". |
" AND num_tax_sup != '' ". |
"ORDER BY rang ASC,num_tax_sup ASC "; |
"ORDER BY rang ASC, num_tax_sup ASC , num_nom_retenu DESC "; |
//echo $requete."\n"; |
$resultat = $this->getBdd()->recupererTous($requete); |
return $resultat; |
} |
|
|
private function lancerRequeteModificationPrChpFamille($noms) { |
foreach ($noms as $id => $famille) { |
$famille = $this->getBdd()->proteger($famille); |