Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1997 → Rev 1998

/branches/v1.8-debroussailleuse/scripts/modules/migrationsauvages/bibliotheque/Dao.php
1,10 → 1,19
<?php
class Dao extends Bdd {
public function obtenirObservationsSauvages() {
public function obtenirNbObservationsSauvages() {
$requete = 'SELECT COUNT(*) as nb FROM cel_obs '.
'WHERE mots_cles_texte LIKE "%sauvages%" '.
'AND mots_cles_texte LIKE "%Projets coopératifs%" ';
$resultat = $this->recuperer($requete);
return $resultat['nb'];
}
public function obtenirObservationsSauvages($debut, $limite) {
$requete = 'SELECT * FROM cel_obs '.
'WHERE mots_cles_texte LIKE "%sauvages%" '.
'AND mots_cles_texte LIKE "%Projets coopératifs%" ';
'AND mots_cles_texte LIKE "%Projets coopératifs%" LIMIT '.$debut.', '.$limite;
 
$resultat = $this->recupererTous($requete);
return $resultat;
/branches/v1.8-debroussailleuse/scripts/modules/migrationsauvages/Migrationsauvages.php
33,15 → 33,15
}
private function migrerObservationsSauvages() {
$liste_observations = $this->dao->obtenirObservationsSauvages();
$nb_obs = $this->dao->obtenirNbObservationsSauvages();
$this->traiterObservationsSauvages($liste_observations);
}
private function traiterObservationsSauvages($liste_observations) {
private function traiterObservationsSauvages($nb_obs) {
$debut = microtime(true);
$nb_obs_modifiees = 0;
$nb_obs_ignorees = 0;
$total = count($liste_observations);
$total = $nb_obs;
if($this->mode_verbeux) {
echo "-------------------------------------------------------------------\n";
53,33 → 53,38
$champs_etendus_a_inserer = array();
$nb_champs_total = 0;
$nb_champs = 0;
echo " Insertion des champs étendus (5 par observation) par paquet de 100 \n";
foreach($liste_observations as $observation) {
// test si obs candidate est ok, i.e. si elle contient bien un champ station formate comme ceci
// coordonnees_debut_de_rue;coordonnees_fin_de_rue;cote_de_la_rue
if ($this->doitMigrerObservation($observation)) {
$champs_etendus_a_inserer[] = $this->convertirChampsObsSauvagesEnChampsEtendus($observation);
$nb_obs_modifiees++;
$nb_champs += 5;
$nb_champs_total += 5;
} else {
$nb_obs_ignorees++;
}
// insertion par paquets de 100 champs ou bien à la fin du parcours de la liste s'il y a moins de
// 20 observations à traiter (20 obs * 5 champs = 100 champs)
if($nb_champs >= 100 || ($nb_obs_modifiees + $nb_obs_ignorees >= count($liste_observations))) {
$this->dao->ajouterChampsEtendusParLots($champs_etendus_a_inserer);
$champs_etendus_a_inserer = array();
$nb_champs = 0;
$pas_liste_obs = 5000;
for($i = 0; $i <= $total; $i += $pas_liste_obs) {
$liste_observations = $this->dao->obtenirObservationsSauvages($i, $pas_liste_obs);
echo " Insertion des champs étendus (5 par observation) par paquet de 100 \n";
foreach($liste_observations as $observation) {
if($this->mode_verbeux) {
$this->afficherAvancement(' champs étendus insérés ', $nb_champs_total);
// test si obs candidate est ok, i.e. si elle contient bien un champ station formate comme ceci
// coordonnees_debut_de_rue;coordonnees_fin_de_rue;cote_de_la_rue
if ($this->doitMigrerObservation($observation)) {
$champs_etendus_a_inserer[] = $this->convertirChampsObsSauvagesEnChampsEtendus($observation);
$nb_obs_modifiees++;
$nb_champs += 5;
$nb_champs_total += 5;
} else {
$nb_obs_ignorees++;
}
// insertion par paquets de 100 champs ou bien à la fin du parcours de la liste s'il y a moins de
// 20 observations à traiter (20 obs * 5 champs = 100 champs)
if($nb_champs >= 100 || ($nb_obs_modifiees + $nb_obs_ignorees >= count($liste_observations))) {
$this->dao->ajouterChampsEtendusParLots($champs_etendus_a_inserer);
$champs_etendus_a_inserer = array();
$nb_champs = 0;
if($this->mode_verbeux) {
$this->afficherAvancement(' champs étendus insérés ', $nb_champs_total);
}
}
}
}
 
$fin = microtime(true);
if($this->mode_verbeux) {
echo "\n";