Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 340 → Rev 339

/trunk/scripts/modules/bdtfx/Bdtfx.php
32,8 → 32,7
case 'chargerTous' :
$this->chargerStructureSql();
$this->chargerBdtfx();
$this->genererChpNomSciHtml();
$this->genererChpFamille();
$this->genererNomSciHtml();
$this->genererDonneesTestMultiVersion();
break;
case 'chargerStructureSql' :
43,7 → 42,7
$this->chargerBdtfx();
break;
case 'genererNomSciHtml' :
$this->genererChpNomSciHtml();
$this->genererNomSciHtml();
break;
case 'genererChpFamille' :
$this->genererChpFamille();
79,7 → 78,7
$this->getBdd()->requeter($requete);
}
 
private function genererChpNomSciHtml() {
private function genererNomSciHtml() {
$this->initialiserGenerationChamps();
$this->preparerTablePrChpNomSciHtml();
$generateur = new GenerateurNomSciHtml();
86,9 → 85,9
$nbreTotal = $this->recupererNbTotalTuples();
$this->departInsertion = 0;
while ($this->departInsertion < $nbreTotal) {
$resultat = $this->recupererTuplesPrChpNomSciHtml();
$resultat = $this->recupererTuples();
$nomsSciEnHtml = $generateur->generer($resultat);
$this->remplirChpNomSciHtm($nomsSciEnHtml);
$this->lancerRequeteModification($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;
117,7 → 116,7
return $resultat['nb'];
}
 
private function recupererTuplesPrChpNomSciHtml() {
private function recupererTuples() {
$requete = 'SELECT num_nom, rang, nom_supra_generique, genre, epithete_infra_generique, '.
' epithete_sp, type_epithete, epithete_infra_sp,cultivar_groupe, '.
' nom_commercial, cultivar '.
127,10 → 126,12
return $resultat;
}
 
private function remplirChpNomSciHtm($nomsSciHtm) {
private function lancerRequeteModification($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");
142,6 → 143,7
$this->initialiserGenerationChamps();
$this->preparerTablePrChpFamille();
$resultats = $this->recupererTuplesPrChpFamille();
$famille = array();
$noms = array();
$introuvables = array();
$introuvablesSyno = array();
152,11 → 154,13
$rg = $nom['rang'];
if ($nnr != '') {
if ($rg == '180') {
$noms[$nn] = $nom['nom_sci'];
$famille[$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;
}
197,7 → 201,12
echo $logFichier."\n";
file_put_contents($logFichier, $logContenu);
}
$this->remplirChpFamille($noms);
if (count($introuvablesSyno) != 0) {
//$introuvablesSyno = implode(', ', $introuvablesSyno);
$introuvablesSyno = count($introuvablesSyno);
echo "Synonyme avec nom retenu introuvable : $introuvablesSyno\n";
}
$this->lancerRequeteModificationPrChpFamille($noms);
}
 
private function preparerTablePrChpFamille() {
215,15 → 224,18
$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 ";
"ORDER BY rang ASC, num_tax_sup ASC , num_nom_retenu DESC ";
//echo $requete."\n";
$resultat = $this->getBdd()->recupererTous($requete);
return $resultat;
}
 
private function remplirChpFamille($noms) {
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 ";
$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");