Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 339 → Rev 340

/trunk/scripts/modules/bdtfx/Bdtfx.php
32,7 → 32,8
case 'chargerTous' :
$this->chargerStructureSql();
$this->chargerBdtfx();
$this->genererNomSciHtml();
$this->genererChpNomSciHtml();
$this->genererChpFamille();
$this->genererDonneesTestMultiVersion();
break;
case 'chargerStructureSql' :
42,7 → 43,7
$this->chargerBdtfx();
break;
case 'genererNomSciHtml' :
$this->genererNomSciHtml();
$this->genererChpNomSciHtml();
break;
case 'genererChpFamille' :
$this->genererChpFamille();
78,7 → 79,7
$this->getBdd()->requeter($requete);
}
 
private function genererNomSciHtml() {
private function genererChpNomSciHtml() {
$this->initialiserGenerationChamps();
$this->preparerTablePrChpNomSciHtml();
$generateur = new GenerateurNomSciHtml();
85,9 → 86,9
$nbreTotal = $this->recupererNbTotalTuples();
$this->departInsertion = 0;
while ($this->departInsertion < $nbreTotal) {
$resultat = $this->recupererTuples();
$resultat = $this->recupererTuplesPrChpNomSciHtml();
$nomsSciEnHtml = $generateur->generer($resultat);
$this->lancerRequeteModification($nomsSciEnHtml);
$this->remplirChpNomSciHtm($nomsSciEnHtml);
$this->departInsertion += $this->pasInsertion;
$this->afficherAvancement("Insertion des noms scientifique au format HTML dans la base par paquet de {$this->pasInsertion} en cours");
if ($this->stopperLaBoucle($this->getParametre('t'))) break;
116,7 → 117,7
return $resultat['nb'];
}
 
private function recupererTuples() {
private function recupererTuplesPrChpNomSciHtml() {
$requete = 'SELECT num_nom, rang, nom_supra_generique, genre, epithete_infra_generique, '.
' epithete_sp, type_epithete, epithete_infra_sp,cultivar_groupe, '.
' nom_commercial, cultivar '.
126,12 → 127,10
return $resultat;
}
 
private function lancerRequeteModification($nomsSciHtm) {
private function remplirChpNomSciHtm($nomsSciHtm) {
foreach ($nomsSciHtm as $id => $html) {
$html = $this->getBdd()->proteger($html);
$requete = "UPDATE {$this->table} ".
"SET nom_sci_html = $html ".
"WHERE num_nom = $id ";
$requete = "UPDATE {$this->table} SET nom_sci_html = $html WHERE num_nom = $id ";
$resultat = $this->getBdd()->requeter($requete);
if ($resultat === false) {
throw new Exception("Erreur d'insertion pour le tuple $id");
143,7 → 142,6
$this->initialiserGenerationChamps();
$this->preparerTablePrChpFamille();
$resultats = $this->recupererTuplesPrChpFamille();
$famille = array();
$noms = array();
$introuvables = array();
$introuvablesSyno = array();
154,13 → 152,11
$rg = $nom['rang'];
if ($nnr != '') {
if ($rg == '180') {
$famille[$nn] = $nom['nom_sci'];
$noms[$nn] = $nom['nom_sci'];
} else {
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;
}
201,12 → 197,7
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);
$this->remplirChpFamille($noms);
}
 
private function preparerTablePrChpFamille() {
224,18 → 215,15
$requete = 'SELECT num_nom, num_nom_retenu, num_tax_sup, rang, nom_sci '.
"FROM {$this->table} ".
"WHERE rang >= 180 ".
"ORDER BY rang ASC, num_tax_sup ASC , num_nom_retenu DESC ";
//echo $requete."\n";
"ORDER BY rang ASC, num_tax_sup ASC, num_nom_retenu DESC ";
$resultat = $this->getBdd()->recupererTous($requete);
return $resultat;
}
 
private function lancerRequeteModificationPrChpFamille($noms) {
private function remplirChpFamille($noms) {
foreach ($noms as $id => $famille) {
$famille = $this->getBdd()->proteger($famille);
$requete = "UPDATE {$this->table} ".
"SET famille = $famille ".
"WHERE num_nom = $id ";
$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");