32,7 → 32,7 |
|
public function executer() { |
$cmd = $this->getParametre('a'); |
$requete_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'cel_obs' AND table_schema='tb_cel';"; |
$requete_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'tb_nettoye_cel.cel_obs' AND table_schema='tb_cel';"; |
$this->colonnes = $this->bdd->recupererTous($requete_colonnes); |
try { |
switch ($cmd) { |
40,9 → 40,15 |
$this->supprimerRetourLigne(); |
$this->supprimerAntislash(); |
$this->supprimerGuillement(); |
$this->unifierNull(); |
$this->unifierNomReferentiel(); |
$this->unifierCertitude(); |
$this->supprimerCertitudeAutre(); |
$this->unifierUtilisateur(); |
$this->verifierCodeInsee(); |
$this->verifierGeodatum(); |
$this->analyserMotsCles(); |
$this->supprimerInfosLiesObsInexistante(); |
$this->unifierNull(); |
break; |
case 'supprimerAntislash' : |
54,12 → 60,27 |
case 'unifierCertitude' : |
$this->unifierCertitude(); |
break; |
case 'supprimerCertitudeAutre' : // après unifier certitude si les autres valeurs sont bien à supprimer |
$this->supprimerCertitudeAutre(); |
break; |
case 'analyserMotsCles' : // après unifier certitude si les autres valeurs sont bien à supprimer |
$this->analyserMotsCles(); |
break; |
case 'verifierGeodatum' : |
$this->verifierGeodatum(); |
break; |
case 'verifierCodeInsee' : |
$this->verifierCodeInsee(); |
break; |
case 'unifierNull' : // lancer en dernier pour bien réussir |
$this->unifierNull(); |
break; |
case 'supprimerInfosLiesObsInexistante' : |
$this->supprimerInfosLiesObsInexistante(); |
break; |
case 'unifierUtilisateur' : |
$this->unifierUtilisateur(); |
break; |
default : |
$msg = "Erreur : la commande '$cmd' n'existe pas!\n". |
"Commandes existantes : regenererMotsClesTexteObs, regenererMotsClesTexteImages" |
81,7 → 102,7 |
private function supprimerRetourLigne() { |
foreach ($this->colonnes as $id=>$colonne) { |
echo "Suppression des retour ligne dans la colonne ".$colonne['column_name']." ..."; |
$requete = "UPDATE cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\n", "")'; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\n", "")'; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
90,7 → 111,7 |
private function supprimerAntislash() { |
foreach ($this->colonnes as $id=>$colonne) { |
echo "Suppression des antislash dans la colonne ".$colonne['column_name']." ..."; |
$requete = "UPDATE cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\", "")'; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\", "")'; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
99,7 → 120,7 |
private function supprimerGuillemet() { |
foreach ($this->colonnes as $id=>$colonne) { |
echo "Suppression des guillements dans la colonne ".$colonne['column_name']." ..."; |
$requete = "UPDATE cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].',"\"", "")'; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].',"\"", "")'; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
106,15 → 127,15 |
} |
|
private function unifierNull() { |
$requete_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'cel_obs' AND table_schema='tb_cel';"; |
$requete_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'tb_nettoye_cel.cel_obs' AND table_schema='tb_cel';"; |
$colonnes = $this->bdd->recupererTous($requete_colonnes); |
foreach ($colonnes as $colonne) { |
echo "Suppression des vides dans la colonne ".$colonne['column_name']." ..."; |
$dsl = array( 'transmission', 'altitude'); |
if (isset($dsl[$colonne['column_name']])) { |
$requete = "UPDATE cel_obs SET ".$colonne['column_name']." = NULL WHERE ".$colonne['column_name']."= ''"; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = NULL WHERE ".$colonne['column_name']."= ''"; |
} else { |
$requete = "UPDATE cel_obs SET ".$colonne['column_name']." = NULL WHERE ".$colonne['column_name']."= '' OR ".$colonne['column_name']." IN ('INSEE-C:', '0000-00-00 00:00:00', '0.00000')"; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = NULL WHERE ".$colonne['column_name']."= '' OR ".$colonne['column_name']." IN ('INSEE-C:', '0000-00-00 00:00:00', '0.00000')"; |
} |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
123,49 → 144,178 |
|
private function unifierCertitude() { |
echo "Uniformisation du champ certitude/identification"; |
$certitude = array("Douteuse" => "douteux", |
"Certainea" => "certain", |
"Certaine" => "certain", |
"A déterminer" => "aDeterminer", |
"à vérifier" => "aDeterminer", |
"Certaine, par Jean Lebail" => "certain", |
"Certaine (à 99%)" => "certain", |
"sur" => "certain"); |
$certitude = array("A déterminer" => "à déterminer", |
"À déterminer, voir photo" => "à déterminer", |
"aDeterminer" => "à déterminer", |
"déterminer" => "à déterminer", |
"Inconnue" => "à déterminer", |
"Ceraine" => "certain", |
"certain" => "certain", |
"Certainaaua" => "certain", |
"Certaine" => "certain", |
"Certaine K- rhizines blanche" => "certain", |
"Certaine ( mais voir notes)" => "certain", |
"Certaine (à 99%)" => "certain", |
"Certaine Anett" => "certain", |
"Certaine Anette" => "certain", |
"Certaine Valériane officinale" => "certain", |
"Certaine, Faite et confirmée par JM BERAUD" => "certain", |
"Certaine, par Jean Lebail" => "certain", |
"Certaine, subsp. minus" => "certain", |
"Certainea" => "certain", |
"Certaineanno" => "certain", |
"Certainearia n" => "certain", |
"Certainee" => "certain", |
"Certainej" => "certain", |
"Certainel" => "certain", |
"CertaineNom de travai" => "certain", |
"CertaineNom de travail" => "certain", |
"Certainesites" => "certain", |
"Certainesous-bois de feuillus en versant sud à sud-ouest" => "certain", |
"Certaineu" => "certain", |
"sure" => "certain", |
"validée sur forum Naturalistes de l'ouest" => "certain", |
"à confirmer" => "douteux", |
"à approfondir" => "douteux", |
"à cofirmer" => "douteux", |
"À confiermer" => "douteux", |
"A confirlmer" => "douteux", |
"A confirmer" => "douteux", |
"à confirmer vs. pumilum" => "douteux", |
"à conirmer" => "douteux", |
"à vérifier" => "douteux", |
"douteuse" => "douteux", |
"Douteuse (canadensis ?)" => "douteux", |
"Douteuse ?" => "douteux", |
"Douteuse à confirmer" => "douteux", |
"Douteuse peut-être cordata" => "douteux", |
"Douteuse, fleurs rouges" => "douteux", |
"douteux" => "douteux", |
"espèce bisannuelle mais non bien déterminée" => "douteux", |
"Incertaine" => "douteux", |
"Pavot douteux" => "douteux", |
"Potentille ansérine, supposé" => "douteux", |
"presque certaine" => "douteux", |
"Quasi Certaine" => "douteux", |
"ssp déterminer" => "douteux", |
"subsp à vérifier" => "douteux", |
"subsp. microphyllum ?" => "douteux", |
"très douteuse" => "douteux", |
"Très probable" => "douteux"); |
foreach ($certitude as $valeur=>$saisie) { |
$requete = "UPDATE cel_obs SET certitude = '".$saisie."' WHERE certitude ='".$valeur."'"; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET commentaire = concat(commentaire, ' ', certitude), certitude = '".$saisie."' WHERE certitude ='".$valeur."'"; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
$requete_verif = "SELECT nom_referentiel FROM cel_obs WHERE certitude NOT IN ('douteux', 'certain', 'aDeterminer', '', NULL)"; |
$requete_verif = "SELECT certitude FROM tb_nettoye_cel.cel_obs WHERE certitude NOT IN ('douteux', 'certain', 'aDeterminer', '', NULL)"; |
$verif = $this->bdd->recupererTous($requete_verif); |
if ($verif != array()) print_r($verif); |
} |
|
private function supprimerCertitudeAutre() { |
echo "suppression des valeurs non compréhensible du champ certitude/identification"; |
$requete = "UPDATE tb_nettoye_cel.cel_obs |
SET commentaire = case isnull(commentaire) when 1 THEN certitude ELSE concat(commentaire, ' ', certitude) END, |
certitude IS NULL WHERE `certitude` NOT IN ('douteux', 'certain', 'aDeterminer', '') and certitude is not NULL"; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
$requete_verif = "SELECT certitude FROM tb_nettoye_cel.cel_obs WHERE certitude NOT IN ('douteux', 'certain', 'aDeterminer', '', NULL)"; |
$verif = $this->bdd->recupererTous($requete_verif); |
if ($verif != array()) print_r($verif); |
} |
|
private function unifierUtilisateur() { |
echo "suppression des images anonymes"; |
$requete_anonyme = "DELETE FROM tb_nettoye_cel.`cel_images` WHERE (ce_utilisateur IS NULL OR LENGTH(ce_utilisateur) > 6 |
OR ce_utilisateur = 0) and `courriel_utilisateur` is null"; |
$this->bdd->requeter($requete_anonyme); |
echo "suppression des tags images anonymes"; |
$requete_anonyme = "DELETE FROM tb_nettoye_cel.`cel_arbre_mots_cles_images` WHERE id_utilisateur in (select ce_utilisateur FROM tb_nettoye_cel.`cel_obs` WHERE (ce_utilisateur IS NULL OR LENGTH(ce_utilisateur) > 6 |
OR ce_utilisateur = 0) and `courriel_utilisateur` is null)"; |
$this->bdd->requeter($requete_anonyme); |
echo "suppression des tags obs anonymes"; |
$requete_anonyme = "DELETE FROM tb_nettoye_cel.`cel_arbre_mots_cles_obs` WHERE id_utilisateur in (select ce_utilisateur FROM tb_nettoye_cel.`cel_obs` WHERE (ce_utilisateur IS NULL OR LENGTH(ce_utilisateur) > 6 |
OR ce_utilisateur = 0) and `courriel_utilisateur` is null)"; |
$this->bdd->requeter($requete_anonyme); |
echo "suppression des obs anonymes"; |
$requete_anonyme = "DELETE FROM tb_nettoye_cel.`cel_obs` WHERE (ce_utilisateur IS NULL OR LENGTH(ce_utilisateur) > 6 |
OR ce_utilisateur = 0) and `courriel_utilisateur` is null"; |
$this->bdd->requeter($requete_anonyme); |
|
echo "modification des observations ayant une adresse mail en identifiant"; |
$requete_annu_mail = "UPDATE tb_nettoye_cel.`cel_obs` join tela_prod_v4.`annuaire_tela` ON `U_MAIL` = ce_utilisateur SET `ce_utilisateur` = `U_ID`, `prenom_utilisateur` = `U_NAME`, `nom_utilisateur` = `U_SURNAME` , |
`courriel_utilisateur` = `U_MAIL` WHERE ce_utilisateur like '%@%'"; |
$utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail); |
|
echo "modification des observations ayant une adresse mail mais pas d'identifiant"; |
$requete_annu_mail = "UPDATE tb_nettoye_cel.`cel_obs` join tela_prod_v4.`annuaire_tela` ON `U_MAIL` = courriel_utilisateur SET `ce_utilisateur` = `U_ID`, `prenom_utilisateur` = `U_NAME`, `nom_utilisateur` = `U_SURNAME` , |
`courriel_utilisateur` = `U_MAIL` WHERE (ce_utilisateur IS NULL OR LENGTH(ce_utilisateur) > 6 |
OR ce_utilisateur = 0) and courriel_utilisateur like '%@%'"; |
$utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail); |
|
echo "modification des observations ayant un identifiant"; |
$requete_annu_mail = "UPDATE tb_nettoye_cel.`cel_obs` join tela_prod_v4.`annuaire_tela` ON U_ID = ce_utilisateur SET `prenom_utilisateur` = `U_NAME`, `nom_utilisateur` = `U_SURNAME` , |
`courriel_utilisateur` = `U_MAIL` WHERE (ce_utilisateur IS NOT NULL OR LENGTH(ce_utilisateur) > 6) and courriel_utilisateur not like '%@%'"; |
$utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail); |
|
$requete_verif = "SELECT `ce_utilisateur`, `prenom_utilisateur`, `nom_utilisateur`, `courriel_utilisateur` FROM tb_nettoye_cel.cel_obs |
WHERE ce_utilisateur IS NOT NULL OR LENGTH(ce_utilisateur) > 6"; |
$verif = $this->bdd->recupererTous($requete_verif); |
if ($verif != array()) print_r($verif); |
} |
|
private function unifierNomReferentiel() { |
echo "Uniformisation du nom de référentiel"; |
$referentiels = array("BDTFX", "BDTRE", "BDTXA", "APD", "LBF", "ISFAN"); |
foreach ($referentiels as $referentiel) { |
$requete = "UPDATE cel_obs SET nom_referentiel = '".$referentiel."' WHERE nom_referentiel like '".$referentiel."%'"; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = '".$referentiel."' WHERE nom_referentiel like '".$referentiel."%'"; |
$this->bdd->requeter($requete); |
$requete = "UPDATE cel_obs SET nom_referentiel = NULL WHERE nom_sel_nn = '' or nom_sel_nn = '0'"; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = NULL WHERE nom_sel_nn = '' or nom_sel_nn = '0'"; |
$this->bdd->requeter($requete); |
$requete = "UPDATE cel_obs SET nom_referentiel = 'APD' WHERE nom_referentiel like 'bdtao%'"; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = 'APD' WHERE nom_referentiel like 'bdtao%'"; |
$this->bdd->requeter($requete); |
$requete = "UPDATE cel_obs SET nom_referentiel = 'BDTFX' WHERE nom_referentiel like 'bdnff%'"; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = 'BDTFX' WHERE nom_referentiel like 'bdnff%'"; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
$requete_verif = "SELECT nom_referentiel FROM cel_obs WHERE nom_referentiel NOT IN ('".implode("', '", $referentiels)."', 'autre')"; |
$requete_verif = "SELECT nom_referentiel FROM tb_nettoye_cel.cel_obs WHERE nom_referentiel NOT IN ('".implode("', '", $referentiels)."', 'autre')"; |
$verif = $this->bdd->recupererTous($requete_verif); |
if ($verif != array()) print_r($verif); |
} |
|
private function supprimerInfosLiesObsInexistante() { |
echo "Supprimer infos liés à obs inexistante"; |
$requete = "DELETE FROM tb_nettoye_cel.`cel_obs_etendues` WHERE `id_observation` not in (select `id_observation` from tb_nettoye_cel.cel_obs);"; |
$this->bdd->requeter($requete); |
$requete = "DELETE FROM tb_nettoye_cel.`cel_mots_cles_obs_liaison` WHERE `id_element_lie` not in (select `id_observation` from tb_nettoye_cel.cel_obs);"; |
$this->bdd->requeter($requete); |
$requete = "DELETE FROM tb_nettoye_cel.`cel_mots_cles_images_liaison` WHERE `id_element_lie` not in (select `id_observation` from tb_nettoye_cel.cel_obs);"; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
|
private function verifierGeodatum() { |
echo "Uniformisation du geodatum"; |
$requete = "UPDATE cel_obs SET geodatum = 'wgs84' WHERE (latitude IS NOT NULL or latitude != '0.00000') AND geodatum = ''"; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET geodatum = 'wgs84' WHERE (latitude IS NOT NULL or latitude != '0.00000') AND geodatum = ''"; |
$this->bdd->requeter($requete); |
$requete = "UPDATE cel_obs SET geodatum = NULL WHERE (latitude IS NULL or latitude == '0.00000')"; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET geodatum = NULL WHERE (latitude IS NULL or latitude == '0.00000')"; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
|
private function verifierCodeInsee() { |
echo "Vérification du code insee"; |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET locality_consistency = '0' WHERE |
((ce_zone_geo != 'INSEE-C:' and ce_zone_geo like 'INSEE-C:%') and code_insee_calcule != '') and |
replace(`ce_zone_geo`, 'INSEE-C:', '') != `code_insee_calcule`"; |
$this->bdd->requeter($requete); |
$requete = "UPDATE tb_nettoye_cel.cel_obs SET locality_consistency = '1' WHERE |
((ce_zone_geo != 'INSEE-C:' and ce_zone_geo like 'INSEE-C:%') and code_insee_calcule != '') and |
replace(`ce_zone_geo`, 'INSEE-C:', '') = `code_insee_calcule`";$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
|
private function analyserMotsCles(){ |
|
} |
} |