New file |
0,0 → 1,951 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe de nettoyage de la base de données du CEL. |
* Suppression des antislash |
* Remplacement des chaines vides par des NULL |
* Unifier les référentiels : pas de nom de version, majuscule... |
* Unifier les certitudes |
* Supprimer les INSEE-C: non rempli, les dates 0000-00 |
* |
* Utilisation : |
* - <code>/opt/lamp/bin/php cli.php nettoyage -a (voir méthode executer)</code> |
* |
* @category CEL |
* @package Scripts |
* @subpackage Nettoyage |
* @author Delphine CAUQUIL <delphine@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2016 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class Nettoyage extends Script { |
|
protected $bdd; |
protected $colonnes; |
protected $bd_cel = "tb_nettoye_cel"; |
protected $bd_del = "tb_del"; |
protected $bd_flore = "tb_eflore"; |
|
|
public function __construct($script_nom, $parametres_cli) { |
parent::__construct($script_nom, $parametres_cli); |
$this->bdd = new Bdd(); |
$this->bd_cel = Config::get('nettoyage.cel_nettoye'); |
$this->bd_del = Config::get('nettoyage.del'); |
$this->bd_flore = Config::get('nettoyage.flore'); |
} |
|
public function executer() { |
$cmd = $this->getParametre('a'); |
$requete_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'cel_obs' AND table_schema='".$this->bd_cel."';"; |
$this->colonnes = $this->bdd->recupererTous($requete_colonnes); |
try { |
switch ($cmd) { |
case 'tout' : |
$this->supprimerRetourLigne(); |
$this->supprimerAntislash(); |
$this->supprimerGuillemet(); |
$this->unifierNull(); |
$this->unifierNomReferentiel(); |
$this->unifierCertitude(); |
//$this->supprimerCertitudeAutre(); |
$this->unifierUtilisateur(); |
$this->unifierPhenologie(); |
$this->verifierCodeInsee(); |
$this->verifierGeodatum(); |
$this->supprimerInfosLiesObsInexistante(); |
$this->supprimerImagesetTagAnonymes(); |
$this->analyserMotsCles(); |
$this->changerSensible(); |
$this->unifierNull(); |
break; |
case 'supprimerRetourLigne' : |
$this->supprimerRetourLigne(); |
break; |
case 'supprimerAntislash' : |
$this->supprimerAntislash(); |
break; |
case 'supprimerGuillemet' : |
$this->supprimerGuillemet(); |
break; |
case 'unifierNomReferentiel' : |
$this->unifierNomReferentiel(); |
break; |
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 'sensible' : |
$this->changerSensible(); |
break; |
case 'unifierNull' : // lancer en dernier pour bien réussir |
$this->unifierNull(); |
break; |
case 'supprimerImagesetTagAnonymes' : |
$this->supprimerImagesetTagAnonymes(); |
break; |
case 'supprimerInfosLiesObsInexistante' : |
$this->supprimerInfosLiesObsInexistante(); |
break; |
case 'unifierUtilisateur' : |
$this->unifierUtilisateur(); |
break; |
case 'unifierInfosEspece' : |
$this->unifierInfosEspeces(); |
break; |
case 'unifierPhenologie' : |
$this->unifierPhenologie(); |
break; |
default : |
$msg = "Erreur : la commande '$cmd' n'existe pas!\n". |
"Commandes existantes : regenererMotsClesTexteObs, regenererMotsClesTexteImages" |
. ", regenererMotsClesTexteObsTout, regenererMotsClesTexteImagesTout" |
. ", viderMotsClesTexteImagesSansMotsCles, viderMotsClesTexteObsSansMotsCles" |
. ", regenererChampsTailleImage, reparerLiaisonsOublieesObs, reparerLiaisonsOublieesImages" |
. ", reparerLiaisonsObsParMotsClesTexte, reductionMotsClesImages, reductionMotsClesImagesUtil" |
. ", reduireEtNormaliserMotsClesImagesUtil, reduireEtNormaliserMotsClesImages" |
. ", reductionMotsClesObs, reductionMotsClesObsUtil, reduireEtNormaliserMotsClesObsUtil" |
. ", reduireEtNormaliserMotsClesObs"; |
throw new Exception($msg); |
} |
} catch (Exception $e) { |
$this->traiterErreur($e->getMessage()); |
} |
} |
|
|
private function supprimerRetourLigne() { |
foreach ($this->colonnes as $id=>$colonne) { |
echo "Suppression des retour ligne dans la colonne ".$colonne['column_name']." ..."; |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\n", "")'; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
} |
|
private function supprimerAntislash() { |
foreach ($this->colonnes as $id=>$colonne) { |
echo "Suppression des antislash dans la colonne ".$colonne['column_name']." ..."; |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\\\", "")'; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
} |
|
private function supprimerGuillemet() { |
foreach ($this->colonnes as $id=>$colonne) { |
echo "Suppression des guillements dans la colonne ".$colonne['column_name']." ..."; |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].',"\"", "")'; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
} |
|
private function unifierNull() { |
foreach ($this->colonnes as $id=>$colonne) { |
echo "Suppression des vides dans la colonne ".$colonne['column_name']." ..."; |
$dsl = array( 'transmission', 'altitude'); |
if (isset($dsl[$colonne['column_name']])) { |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET ".$colonne['column_name']." = NULL WHERE trim(".$colonne['column_name'].") = '' and ".$colonne['column_name']." != '0'"; |
} else { |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET ".$colonne['column_name']." = NULL WHERE trim(".$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"; |
} |
} |
|
private function unifierCertitude() { |
echo "Uniformisation du champ certitude/identification"; |
$certitude = array("A déterminer" => "à déterminer", |
"À déterminer, voir photo" => "à déterminer", |
"A déterminer" => "à 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 '.$this->bd_cel.'.cel_obs SET commentaire = concat(commentaire, " Certitude : ", certitude), certitude = "'.$saisie.'" WHERE certitude ="'.$valeur.'"'; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
$requete_verif = "SELECT certitude FROM ".$this->bd_cel.".cel_obs WHERE certitude NOT IN ('douteux', 'certain', 'à déterminer', '') and certitude is not 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 ".$this->bd_cel.".cel_obs |
SET commentaire = case isnull(commentaire) when 1 THEN certitude ELSE concat(commentaire, ' Certitude : ', certitude) END, |
certitude = '' WHERE `certitude` NOT IN ('douteux', 'certain', 'à déterminer', '') and certitude is not NULL"; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
$requete_verif = "SELECT certitude FROM ".$this->bd_cel.".cel_obs WHERE certitude NOT IN ('douteux', 'certain', 'à déterminer', '') and certitude is not NULL"; |
$verif = $this->bdd->recupererTous($requete_verif); |
if ($verif != array()) print_r($verif); |
} |
|
private function unifierPhenologie() { |
echo "Uniformisation du champ phenologie"; |
$phenologie = array("2" => "00-09: germination, développement des bourgeons", |
"5" => "00-09: germination, développement des bourgeons", |
"5" => "00-09: germination, développement des bourgeons", |
"8" => "00-09: germination, développement des bourgeons", |
"8" => "00-09: germination, développement des bourgeons", |
"9" => "00-09: germination, développement des bourgeons", |
"00-09" => "00-09: germination, développement des bourgeons", |
"Germination, développement des bourgeons" => "00-09: germination, développement des bourgeons", |
"10" => "10-19: développement des feuilles", |
"11" => "10-19: développement des feuilles", |
"12" => "10-19: développement des feuilles", |
"14" => "10-19: développement des feuilles", |
"15" => "10-19: développement des feuilles", |
"16" => "10-19: développement des feuilles", |
"17" => "10-19: développement des feuilles", |
"18" => "10-19: développement des feuilles", |
"19" => "10-19: développement des feuilles", |
"10-19" => "10-19: développement des feuilles", |
"10-19: développement des feui" => "10-19: développement des feuilles", |
"10-19: développement des feuilles" => "10-19: développement des feuilles", |
"15: environ % des feuilles épanouies" => "10-19: développement des feuilles", |
"19 environ 50% des feuilles épanouies" => "10-19: développement des feuilles", |
"en feuilles" => "10-19: développement des feuilles", |
"Feuille" => "10-19: développement des feuilles", |
"feuille peu dvt, a confirmer" => "10-19: développement des feuilles", |
"feuilles seulement" => "10-19: développement des feuilles", |
"20" => "20-29: formation de pousses latérales, tallage", |
"Formation de pousses latérales, tallage" => "20-29: formation de pousses latérales, tallage", |
"30" => "30-39: développement des tiges, croissance des rosettes", |
"35" => "30-39: développement des tiges, croissance des rosettes", |
"36" => "30-39: développement des tiges, croissance des rosettes", |
"38" => "30-39: développement des tiges, croissance des rosettes", |
"39" => "30-39: développement des tiges, croissance des rosettes", |
"3: développement des tiges, croissance des rosettes" => "30-39: développement des tiges, croissance des rosettes", |
"Développement des tiges, croissance des rosettes" => "30-39: développement des tiges, croissance des rosettes", |
"40" => "40-49: développement des organes de propagation végétative", |
"43" => "40-49: développement des organes de propagation végétative", |
"45" => "40-49: développement des organes de propagation végétative", |
"46" => "40-49: développement des organes de propagation végétative", |
"48" => "40-49: développement des organes de propagation végétative", |
"49" => "40-49: développement des organes de propagation végétative", |
"40-49" => "40-49: développement des organes de propagation végétative", |
"40-49: développement des organes de propagation végétative" => "40-49: développement des organes de propagation végétative", |
"40-49: développement des organes de propagation végétativegt" => "40-49: développement des organes de propagation végétative", |
"40-49: développement des organes de propagation végétativepas d'inflorescence" => "40-49: développement des organes de propagation végétative", |
"50" => "50-59 : apparition de l’inflorescence", |
"56" => "50-59 : apparition de l’inflorescence", |
"57" => "50-59 : apparition de l’inflorescence", |
"58" => "50-59 : apparition de l’inflorescence", |
"59" => "50-59 : apparition de l’inflorescence", |
"10x En bouton" => "50-59 : apparition de l’inflorescence", |
"14x En bouton" => "50-59 : apparition de l’inflorescence", |
"20x En bouton" => "50-59 : apparition de l’inflorescence", |
"30-39" => "50-59 : apparition de l’inflorescence", |
"50-59" => "50-59 : apparition de l’inflorescence", |
"50-59: apparition de l'inflorescence, épiais" => "50-59 : apparition de l’inflorescence", |
"50-59: apparition de l'inflorescence, épiaison" => "50-59 : apparition de l’inflorescence", |
"59: apparition de l'inflorescence, épiaison" => "50-59 : apparition de l’inflorescence", |
"8x En bouton" => "50-59 : apparition de l’inflorescence", |
"60" => "60-69 : floraison", |
"62" => "60-69 : floraison", |
"63" => "60-69 : floraison", |
"64" => "60-69 : floraison", |
"66" => "60-69 : floraison", |
"67" => "60-69 : floraison", |
"68" => "60-69 : floraison", |
"69" => "60-69 : floraison", |
" floraison " => "60-69 : floraison", |
"-69: floraison" => "60-69 : floraison", |
"10x Fin de floraison" => "60-69 : floraison", |
"12x Pleine floraison" => "60-69 : floraison", |
"14x Début de floraison" => "60-69 : floraison", |
"150x Pleine floraison" => "60-69 : floraison", |
"17x Fin de floraison" => "60-69 : floraison", |
"1x Début de floraison" => "60-69 : floraison", |
"1x En fleur" => "60-69 : floraison", |
"1x Fin de floraison" => "60-69 : floraison", |
"1x Pleine floraison" => "60-69 : floraison", |
"20x Début de floraison" => "60-69 : floraison", |
"20x Pleine floraison" => "60-69 : floraison", |
"25x Pleine floraison" => "60-69 : floraison", |
"27x En fleur" => "60-69 : floraison", |
"30x Fin de floraison" => "60-69 : floraison", |
"35x Début de floraison" => "60-69 : floraison", |
"35x Fin de floraison" => "60-69 : floraison", |
"35x Pleine floraison" => "60-69 : floraison", |
"3x Fin de floraison" => "60-69 : floraison", |
"3x Pleine floraison" => "60-69 : floraison", |
"40x Début de floraison" => "60-69 : floraison", |
"44x Pleine floraison" => "60-69 : floraison", |
"48x Pleine floraison" => "60-69 : floraison", |
"4x Pleine floraison" => "60-69 : floraison", |
"50x Pleine floraison" => "60-69 : floraison", |
"5x Pleine floraison" => "60-69 : floraison", |
"6: floraison" => "60-69 : floraison", |
"60 : floraison en amorce, pétales jaunes, corolle non ouverte encore" => "60-69 : floraison", |
"60-" => "60-69 : floraison", |
"60-6: floraison" => "60-69 : floraison", |
"60-65" => "60-69 : floraison", |
"60-69" => "60-69 : floraison", |
"60-69 floraison" => "60-69 : floraison", |
"60-69 floraison +70-79: fructification" => "60-69 : floraison", |
"60-69: florai" => "60-69 : floraison", |
"60-69: florais" => "60-69 : floraison", |
"60-69: floraison" => "60-69 : floraison", |
"60-69: floraison - fructification" => "60-69 : floraison", |
"60-69: floraison (8" => "60-69 : floraison", |
"60-69: floraison 1 individu fleuri sur une trentaine" => "60-69 : floraison", |
"60-69: floraison à 50 pour" => "60-69 : floraison", |
"60-69: floraison Fleurs déjà fanées ou en cours de l'être" => "60-69 : floraison", |
"60-69: floraison floraison" => "60-69 : floraison", |
"60-69: floraison pour le 09/04/2019" => "60-69 : floraison", |
"60-69: floraison5" => "60-69 : floraison", |
"60-69: floraison6" => "60-69 : floraison", |
"60-69: floraisondi" => "60-69 : floraison", |
"60-69: floraisonentre les pierres du mur des quai" => "60-69 : floraison", |
"60-69: floraisonfleurs et fruit" => "60-69 : floraison", |
"60-69: floraisonl" => "60-69 : floraison", |
"60-69: floraisonvi" => "60-69 : floraison", |
"60-69: fructification" => "60-69 : floraison", |
"60: floraison" => "60-69 : floraison", |
"63: floraison" => "60-69 : floraison", |
"63: environ 3% des fleurs épanouies" => "60-69 : floraison", |
"64: floraison" => "60-69 : floraison", |
"66, avec quelques fruits" => "60-69 : floraison", |
"66: floraison" => "60-69 : floraison", |
"67 : floraison" => "60-69 : floraison", |
"67 Nbses fleurs épanouies," => "60-69 : floraison", |
"67: floraison" => "60-69 : floraison", |
"67: environ 70% des fleurs épanouies + formation de gousses." => "60-69 : floraison", |
"68: environ 0% des fleurs épanouies" => "60-69 : floraison", |
"68: floraison" => "60-69 : floraison", |
"68: environ 50% des fleurs épanouies" => "60-69 : floraison", |
"68: environ 80% des fleurs épanouies + formation des gousses." => "60-69 : floraison", |
"68floraison" => "60-69 : floraison", |
"69 (floraison de toutes fleurs)" => "60-69 : floraison", |
"69-70" => "60-69 : floraison", |
"69-70: fin de floraisonfructification" => "60-69 : floraison", |
"69-70n" => "60-69 : floraison", |
"69: 100% des fleurs épanouies" => "60-69 : floraison", |
"69s" => "60-69 : floraison", |
"82x Pleine floraison" => "60-69 : floraison", |
"9: floraison" => "60-69 : floraison", |
"début de ffloraison" => "60-69 : floraison", |
"début floraison" => "60-69 : floraison", |
"en fleurs" => "60-69 : floraison", |
"environ 30% des fleurs épanouies" => "60-69 : floraison", |
"environ 950% des fleurs épanouies" => "60-69 : floraison", |
"fin d floraison" => "60-69 : floraison", |
"fin de floraison" => "60-69 : floraison", |
"fin floraison" => "60-69 : floraison", |
"fl" => "60-69 : floraison", |
"fl2" => "60-69 : floraison", |
"fleur" => "60-69 : floraison", |
"Fleurs" => "60-69 : floraison", |
"fleurs épanouies; fin" => "60-69 : floraison", |
"floraison" => "60-69 : floraison", |
"Nombreux plants en début de floraison" => "60-69 : floraison", |
"61" => "61: environ 10% des fleurs épanouies", |
"10% des fleurs épanouies" => "61: environ 10% des fleurs épanouies", |
"61 :" => "61: environ 10% des fleurs épanouies", |
"61 : environ 10% des fleurs épanouies" => "61: environ 10% des fleurs épanouies", |
"61: début defloraison" => "61: environ 10% des fleurs épanouies", |
"61: floraison" => "61: environ 10% des fleurs épanouies", |
"61: environ 10% des fleurs épanouie" => "61: environ 10% des fleurs épanouies", |
"61: environ 10% des fleurs épanouies" => "61: environ 10% des fleurs épanouies", |
"61: environ 10% des fleurs épanouies63" => "61: environ 10% des fleurs épanouies", |
"61: environ 10% des fleurs épanouies68" => "61: environ 10% des fleurs épanouies", |
"61: environ 2% des fleurs épanouies" => "61: environ 10% des fleurs épanouies", |
"61: environ20% des fleurs épanouies" => "61: environ 10% des fleurs épanouies", |
"Fleurs (environ 10% des fleurs épanouies)" => "61: environ 10% des fleurs épanouies", |
"65" => "65: environ 50% des fleurs épanouies", |
"65" => "65: environ 50% des fleurs épanouies", |
"6: environ 50% des fleurs épanouies" => "65: environ 50% des fleurs épanouies", |
"65 , avec quelques fruits" => "65: environ 50% des fleurs épanouies", |
"65 : environ 80% des fleurs épanouies" => "65: environ 50% des fleurs épanouies", |
"65 : environ 10% des fleurs ép" => "65: environ 50% des fleurs épanouies", |
"65 : environ 50% des fleurs épa" => "65: environ 50% des fleurs épanouies", |
"65 : environ 50% des fleurs épanouies" => "65: environ 50% des fleurs épanouies", |
"65 : environ 50% des fleurs épanouies-75" => "65: environ 50% des fleurs épanouies", |
"65-6: floraison" => "65: environ 50% des fleurs épanouies", |
"65-69: floraison" => "65: environ 50% des fleurs épanouies", |
"65-7: floraison" => "65: environ 50% des fleurs épanouies", |
"65-72" => "65: environ 50% des fleurs épanouies", |
"65:" => "65: environ 50% des fleurs épanouies", |
"65: floraison" => "65: environ 50% des fleurs épanouies", |
"65: environ 10% des fleurs épanouies" => "65: environ 50% des fleurs épanouies", |
"65: environ 50% des fleurs épanoui" => "65: environ 50% des fleurs épanouies", |
"65: environ 50% des fleurs épanouie6" => "65: environ 50% des fleurs épanouies", |
"65: environ 50% des fleurs épanouies" => "65: environ 50% des fleurs épanouies", |
"65: environ 50% des fleurs épanouies et fructification" => "65: environ 50% des fleurs épanouies", |
"65: environ 50% des fleurs épanouies75" => "65: environ 50% des fleurs épanouies", |
"65: environ 50% des fleurs épanouies78" => "65: environ 50% des fleurs épanouies", |
"65:-70" => "65: environ 50% des fleurs épanouies", |
"65:-75" => "65: environ 50% des fleurs épanouies", |
"avec quelques fruits, 65" => "65: environ 50% des fleurs épanouies", |
"nviron 50% des fleurs épanouies" => "65: environ 50% des fleurs épanouies", |
"70" => "70-79: fructification", |
"71" => "70-79: fructification", |
"72" => "70-79: fructification", |
"73" => "70-79: fructification", |
"74" => "70-79: fructification", |
"75" => "70-79: fructification", |
"76" => "70-79: fructification", |
"77" => "70-79: fructification", |
"78" => "70-79: fructification", |
"79" => "70-79: fructification", |
"7: fructification" => "70-79: fructification", |
"70-: fructification" => "70-79: fructification", |
"70-71" => "70-79: fructification", |
"70-79" => "70-79: fructification", |
"70-79: floraison" => "70-79: fructification", |
"70-79: fructification" => "70-79: fructification", |
"70-79: fructification ?" => "70-79: fructification", |
"70-79: fructification +floraison" => "70-79: fructification", |
"70-79: fructification Entre autre" => "70-79: fructification", |
"70-79: fructification, mais fruits verts" => "70-79: fructification", |
"70-79: fructificationfleurs et fruit" => "70-79: fructification", |
"70-79:fin floraison fructification" => "70-79: fructification", |
"709: fructification" => "70-79: fructification", |
"75: fructification" => "70-79: fructification", |
"Début de ruits" => "70-79: fructification", |
"fin floraison et fructification" => "70-79: fructification", |
"fleur, fruit" => "70-79: fructification", |
"fleurs e fructification" => "70-79: fructification", |
"Fleurs et début fruits" => "70-79: fructification", |
"Fleurs et début ruits" => "70-79: fructification", |
"Fleurs et fructification" => "70-79: fructification", |
"floraison - fructification" => "70-79: fructification", |
"floraison zet fructification" => "70-79: fructification", |
"Floraison, fructification" => "70-79: fructification", |
"floraison(fin) fructification" => "70-79: fructification", |
"floraison+ ou - finie" => "70-79: fructification", |
"fr1" => "70-79: fructification", |
"quelques fruits rares" => "70-79: fructification", |
"stérile70-79: fructification" => "70-79: fructification", |
"toutes les fleurs épanouies et début fructification" => "70-79: fructification", |
"fleurs et fruits" => "70-79: fructification", |
"Fleurs et jeunes fruits" => "70-79: fructification", |
"floraison + fructification" => "70-79: fructification", |
"Fructificaiton" => "70-79: fructification", |
"fleurs et quelques fruits" => "70-79: fructification", |
"Fleurs et surtout début defruits" => "70-79: fructification", |
"floraison et fructification" => "70-79: fructification", |
"fructification" => "70-79: fructification", |
"Fleurs/fruits" => "70-79: fructification", |
"fructification ?" => "70-79: fructification", |
"80" => "80-89: maturité des fruits et des graines", |
"81" => "80-89: maturité des fruits et des graines", |
"82" => "80-89: maturité des fruits et des graines", |
"83" => "80-89: maturité des fruits et des graines", |
"84" => "80-89: maturité des fruits et des graines", |
"86" => "80-89: maturité des fruits et des graines", |
"87" => "80-89: maturité des fruits et des graines", |
"88" => "80-89: maturité des fruits et des graines", |
"89" => "80-89: maturité des fruits et des graines", |
"-89: maturité des fruits et des graines" => "80-89: maturité des fruits et des graines", |
"80-89" => "80-89: maturité des fruits et des graines", |
"80-89: maturité des fruits et des graines" => "80-89: maturité des fruits et des graines", |
"80-89: maturité des fruits et des graines,début sénescence" => "80-89: maturité des fruits et des graines", |
"80-95" => "80-89: maturité des fruits et des graines", |
"88 maturité des fruits et des graines" => "80-89: maturité des fruits et des graines", |
"89: maturité des fruits et des graines" => "80-89: maturité des fruits et des graines", |
"floraison et fructification, graines mûres" => "80-89: maturité des fruits et des graines", |
"floraison et maturation des graines" => "80-89: maturité des fruits et des graines", |
"fructification passée" => "80-89: maturité des fruits et des graines", |
"Fruit" => "80-89: maturité des fruits et des graines", |
"Fruits" => "80-89: maturité des fruits et des graines", |
"85" => "85: 50% des fruits matures", |
"50% des fruits matures (fructification d'Août)î" => "85: 50% des fruits matures", |
"85, mais avec encore des fleurs" => "85: 50% des fruits matures", |
"85:" => "85: 50% des fruits matures", |
"85: fruits matures 20" => "85: 50% des fruits matures", |
"85: 50% des fruits mature8" => "85: 50% des fruits matures", |
"85: 50% des fruits matures" => "85: 50% des fruits matures", |
"85: 50% des fruits matures0" => "85: 50% des fruits matures", |
"85: 50% des fruits matures56" => "85: 50% des fruits matures", |
"85: 50% des fruits matures88" => "85: 50% des fruits matures", |
"88: 50% des fruits matures" => "85: 50% des fruits matures", |
"90" => "90-99: sénescence et dormance", |
"91" => "90-99: sénescence et dormance", |
"92" => "90-99: sénescence et dormance", |
"94" => "90-99: sénescence et dormance", |
"95" => "90-99: sénescence et dormance", |
"97" => "90-99: sénescence et dormance", |
"98" => "90-99: sénescence et dormance", |
"99" => "90-99: sénescence et dormance", |
"100% de feuilles jaunes" => "90-99: sénescence et dormance", |
"80% feuillage d'automne" => "90-99: sénescence et dormance", |
"90-99" => "90-99: sénescence et dormance", |
"90-99: sénescence et dormance" => "90-99: sénescence et dormance", |
"95: environ 9% des feuilles jaunes" => "90-99: sénescence et dormance" |
); |
foreach ($phenologie as $valeur=>$saisie) { |
$requete = 'UPDATE '.$this->bd_cel.'.cel_obs SET commentaire = concat(commentaire, " Certitude : ", certitude), phenologie = "'.$saisie.'" WHERE phenologie ="'.$valeur.'"'; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
$requete_verif = "SELECT certitude FROM ".$this->bd_cel.".cel_obs WHERE certitude NOT IN ('douteux', 'certain', 'à déterminer', '') and certitude is not NULL"; |
$verif = $this->bdd->recupererTous($requete_verif); |
if ($verif != array()) print_r($verif); |
} |
|
private function unifierUtilisateur() { |
echo "vérification de la présence de l'annuaire \n"; |
$requete = "SELECT * FROM ".$this->bd_cel.".`users`;"; |
$result = $this->bdd->requeter($requete); |
if ($result === NULL) {echo $requete; |
echo "Il manque la table annuaire (à recopier de telaorg users\n"; |
exit; |
} |
|
echo "suppression de le colonne ordre \n"; |
$requete = "ALTER TABLE ".$this->bd_cel.".cel_obs DROP INDEX id_obs;"; |
$this->bdd->requeter($requete); |
$requete = "ALTER TABLE ".$this->bd_cel.".cel_obs DROP INDEX ordre;"; |
$this->bdd->requeter($requete); |
$requete = "ALTER TABLE ".$this->bd_cel.".`cel_obs` DROP IF EXISTS `ordre`;"; |
$this->bdd->requeter($requete); |
$requete = "ALTER TABLE ".$this->bd_cel.".`cel_obs` ADD IF NOT EXISTS pseudo varchar(250);"; |
$this->bdd->requeter($requete); |
|
echo "modification des observations ayant une adresse mail en identifiant"; |
$requete_annu_mail = "UPDATE ".$this->bd_cel.".`cel_obs` right join ".$this->bd_cel.".`users` ON `user_email` = ce_utilisateur SET `ce_utilisateur` = `ID`, pseudo = user_nicename, |
`courriel_utilisateur` = `user_email` 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 ".$this->bd_cel.".`cel_obs` join ".$this->bd_cel.".`users` ON `user_email` = courriel_utilisateur SET `ce_utilisateur` = `ID`, pseudo = user_nicename, |
`courriel_utilisateur` = `user_email` WHERE (ce_utilisateur IS NULL OR CHAR_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 ".$this->bd_cel.".`cel_obs` join ".$this->bd_cel.".`users` ON ID = ce_utilisateur SET pseudo = user_nicename, |
`courriel_utilisateur` = `user_email` WHERE (ce_utilisateur IS NULL OR char_length(ce_utilisateur) > 6) and (courriel_utilisateur is null or courriel_utilisateur='')"; |
$utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail); |
|
echo "suppression des autres valeurs ce_utilisateur"; |
$requete_annu_mail = "UPDATE ".$this->bd_cel.".`cel_obs` SET ce_utilisateur = NULL, courriel_utilisateur = if (ce_utilisateur like '%@%'and (courriel_utilisateur is null or courriel_utilisateur='') , ce_utilisateur, courriel_utilisateur) WHERE ce_utilisateur IS NOT NULL AND char_length(ce_utilisateur) > 6"; |
$utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail); |
|
echo "suppression des obs anonymes"; |
$requete_anonyme = "DELETE FROM ".$this->bd_cel.".`cel_obs` WHERE (ce_utilisateur IS NULL OR char_length(ce_utilisateur) > 6 |
OR ce_utilisateur = 0) and (`courriel_utilisateur` is null or `courriel_utilisateur` not like '%@%')"; |
$this->bdd->requeter($requete_anonyme); |
|
$requete_verif = "SELECT `ce_utilisateur`, `prenom_utilisateur`, `nom_utilisateur`, `courriel_utilisateur` FROM ".$this->bd_cel.".cel_obs |
WHERE ce_utilisateur IS NOT NULL OR char_length(ce_utilisateur) > 6"; |
$verif = $this->bdd->recupererTous($requete_verif); |
if ($verif != array()) print_r($verif); |
echo "effectuée \n"; |
$this->unifierUtilisateurTag("cel_arbre_mots_cles_obs"); |
$this->unifierUtilisateurTag("cel_arbre_mots_cles_images"); |
} |
|
private function unifierUtilisateurTag($table) { |
echo "séparation des identifiants en ce_utilisateur et courriel"; |
$requete = "ALTER TABLE ".$this->bd_cel.".".$table." ADD courriel varchar(255);"; |
$this->bdd->requeter($requete); |
$requete = "UPDATE ".$this->bd_cel.".".$table." SET courriel = id_utilisateur, |
id_utilisateur = NULL WHERE id_utilisateur like '%@%';"; |
$this->bdd->requeter($requete); |
echo "recherche des identifiants pour les tags ayant que des courriels dans users"; |
$requete = "UPDATE ".$this->bd_cel.".".$table." join ".$this->bd_cel.".`users` ON `user_email` = courriel SET `id_utilisateur` = `ID` |
WHERE courriel like '%@%';"; |
$this->bdd->requeter($requete); |
echo "recherche des identifiants pour les tags ayant que des courriels dans obs"; |
$requete = "UPDATE ".$this->bd_cel.".".$table." t join ".$this->bd_cel.".`cel_obs` o ON |
`courriel` = courriel_utilisateur SET t.`id_utilisateur` = o.`ce_utilisateur` |
WHERE courriel_utilisateur like '%@%';"; |
$this->bdd->requeter($requete); |
echo "suppression des tags sans identifiant"; |
$requete_anonyme = "DELETE FROM ".$this->bd_cel.".".$table." WHERE |
(id_utilisateur IS NULL OR trim(id_utilisateur) = '') OR char_length(id_utilisateur) > 6"; |
$this->bdd->requeter($requete_anonyme); |
if ($table == "cel_arbre_mots_cles_obs") { |
$requete_anonyme = "DELETE FROM ".$this->bd_cel.".`cel_mots_cles_obs_liaison` |
WHERE `id_element_lie` not in (SELECT `id_observation` FROM ".$this->bd_cel.".`cel_obs`) |
OR `id_mot_cle` NOT IN (SELECT `id_mot_cle` FROM ".$this->bd_cel.".`cel_arbre_mots_cles_obs`);"; |
$this->bdd->requeter($requete_anonyme); |
} else { |
$requete_anonyme = "DELETE FROM ".$this->bd_cel.".`cel_mots_cles_images_liaison` |
WHERE `id_element_lie` not in (SELECT `id_image` FROM ".$this->bd_cel.".`cel_images`) |
OR `id_mot_cle` NOT IN (SELECT `id_mot_cle` FROM ".$this->bd_cel.".`cel_arbre_mots_cles_images`);"; |
$this->bdd->requeter($requete_anonyme); |
} |
} |
|
private function unifierInfosEspeces() { |
echo "maj infos espèces \n"; |
/*$requete = "ALTER TABLE ".$this->bd_cel.".`cel_obs` ADD infosnn varchar(2), |
ADD bd_nom_sci varchar(250), ADD bd_num_nom int(11), ADD bd_nom_sci_retenu varchar(250), |
ADD bd_num_nom_retenu int(11) ;"; |
$this->bdd->requeter($requete); |
*/ |
$liste_referentiels = array("bdtfx" => "bdtfx_v6_00", "bdtre" => "bdtre_v1_00", |
"isfan" => "isfan_v2013", "apd" => "apd_v3_4_0", "bdtxa" => "bdtxa_v1_01", |
"aublet" => "aublet_v2016_09", "florical" => "florical_v2016_04_22", "lbf" => "lbf_v1_00"); |
|
$this->unifierInfosEspecesBDTFX(); |
foreach ($liste_referentiels as $ref => $version) { |
//Num nom et nom sci sont les mêmes |
// chercher les versions |
$requete = "UPDATE ".$this->bd_cel.".`cel_obs` |
join (SELECT `num_nom`, `num_nom_retenu`, `nom_sci`, |
case when annee = '' THEN concat(`nom_sci`, ' ', auteur) ELSE concat(`nom_sci`, ' ', auteur, ' [',annee,']') END as nom_sci_complet, |
nom_sci_complet_ret FROM ".$this->bd_flore.".".$version. |
|
'left join (select `num_nom` as nn, `nom_sci` as nom_sci_ret, |
case when annee = "" THEN concat(`nom_sci`, " ", auteur) ELSE concat(`nom_sci`, " ", auteur, " [",annee,"]") END as nom_sci_complet_ret |
from ".$this->bd_flore.".".$version." where `num_nom` = `num_nom_retenu`) ret |
on `num_nom_retenu` = nn) bdtfx |
on `nom_sel_nn` = num_nom and `nom_sel` like concat(nom_sci,"%") |
SET `nom_sel` = nom_sci_complet, `nom_sel_nn` = num_nom , `nom_ret` = nom_sci_complet_ret, `nom_ret_nn` = num_nom_retenu, |
infosnn = 1 |
WHERE nom_referentiel = "'.$ref.'"'; |
$this->bdd->requeter($requete); |
|
//Num nom id, nom sci != |
$requete = "UPDATE ".$this->bd_cel.".`cel_obs` |
join (SELECT `num_nom`, `num_nom_retenu`, `nom_sci`, |
case when annee = '' THEN concat(`nom_sci`, ' ', auteur) ELSE concat(`nom_sci`, ' ', auteur, ' [',annee,']') END as nom_sci_complet, |
nom_sci_complet_ret FROM ".$this->bd_flore.".".$version. |
|
'left join (select `num_nom` as nn, `nom_sci` as nom_sci_ret, |
case when annee = "" THEN concat(`nom_sci`, " ", auteur) ELSE concat(`nom_sci`, " ", auteur, " [",annee,"]") END as nom_sci_complet_ret |
from ".$this->bd_flore.".".$version." where `num_nom` = `num_nom_retenu`) ret |
on `num_nom_retenu` = nn) bdtfx |
on `nom_sel_nn` = num_nom and and (nom_sel like concat(nom_sci,"%") and nom_ret like concat(nom_sci,"%")) |
and (nom_sel like concat(nom_sci_ret,"%") and nom_ret like concat(nom_sci_ret,"%")) |
SET `nom_sel` = nom_sci_complet, `nom_sel_nn` = num_nom , `nom_ret` = nom_sci_complet_ret, `nom_ret_nn` = num_nom_retenu, |
infosnn = 2 |
WHERE nom_referentiel = "'.$ref.'" and infosnn != 1'; |
$this->bdd->requeter($requete); |
// |
} |
} |
|
private function unifierInfosEspecesBDTFX() { |
echo "maj infos espèces \n"; |
/*$requete = "ALTER TABLE ".$this->bd_cel.".`cel_obs` ADD infosnn varchar(2), |
ADD bd_nom_sci varchar(250), ADD bd_num_nom int(11), ADD bd_nom_sci_retenu varchar(250), |
ADD bd_num_nom_retenu int(11) ;"; |
$this->bdd->requeter($requete); |
*/ |
|
//Num nom et nom sci sont les mêmes |
// chercher les versions |
$requete = "UPDATE ".$this->bd_cel.".`cel_obs`" |
.' join bdtfx on `nom_sel_nn` = num_nom and `nom_sel` like concat(nom_sci, "%") |
SET `nom_sel` = nom_sci_complet, `nom_sel_nn` = num_nom , |
`nom_ret` = nom_ret_complet, `nom_ret_nn` = num_nom_retenu, |
infosnn = 1 |
where `nom_referentiel` = "bdtfx" '; |
$this->bdd->requeter($requete); |
|
//Num nom id, nom sci +-= |
$requete = "UPDATE ".$this->bd_cel.".`cel_obs`" |
.' join bdtfx on `nom_sel_nn` = num_nom and and (nom_sel like concat(nom_sci,"%") and nom_ret like concat(nom_sci,"%")) |
and (nom_sel like concat(nom_sci_ret,"%") and nom_ret like concat(nom_sci_ret,"%")) |
SET `nom_sel` = nom_sci_complet, `nom_sel_nn` = num_nom , |
`nom_ret` = nom_ret_complet, `nom_ret_nn` = num_nom_retenu, |
infosnn = 2 |
where `nom_referentiel` = "bdtfx" and infosnn != "1"'; |
$this->bdd->requeter($requete); |
|
//Num nom id, nom sci +-= |
$requete = "UPDATE ".$this->bd_cel.".`cel_obs`" |
.' join bdtfx on `nom_sel_nn` = num_nom and and (nom_sel not like concat(nom_sci,"%") and nom_ret not like concat(nom_sci,"%")) |
and (nom_sel not like concat(nom_sci_ret,"%") and nom_ret not like concat(nom_sci_ret,"%")) |
SET `bd_nom_sci` = nom_sci_complet, `bd_num_nom` = num_nom , |
`bd_nom_sci_retenu` = nom_ret_complet, `bd_num_nom_retenu` = num_nom_retenu, |
infosnn = 3 |
where `nom_referentiel` = "bdtfx" and infosnn not in ("1", "2")'; |
$this->bdd->requeter($requete); |
} |
|
private function supprimerImagesetTagAnonymes() { |
echo "vérification de la présence de l'annuaire \n"; |
$requete = "SELECT * FROM ".$this->bd_cel.".`users`;"; |
$result = $this->bdd->requeter($requete); |
if ($result === NULL) { |
echo $requete; |
echo "Il manque la table annuaire (à recopier de telaorg users\n"; |
exit; |
} |
|
echo "suppression de le colonne ordre \n"; |
$requete = "ALTER TABLE ".$this->bd_cel.".cel_images DROP INDEX id_img;"; |
$this->bdd->requeter($requete); |
$requete = "ALTER TABLE ".$this->bd_cel.".`cel_images` DROP IF EXISTS `ordre`;"; |
$this->bdd->requeter($requete); |
$requete = "ALTER TABLE ".$this->bd_cel.".`cel_images` ADD IF NOT EXISTS pseudo varchar(250);"; |
$this->bdd->requeter($requete); |
|
echo "modification des images ayant une adresse mail en identifiant"; |
$requete_annu_mail = "UPDATE ".$this->bd_cel.".`cel_images` right join ".$this->bd_cel.".`users` ON `user_email` = ce_utilisateur SET `ce_utilisateur` = `ID`, pseudo = user_nicename, |
`courriel_utilisateur` = `user_email` WHERE ce_utilisateur like '%@%'"; |
$utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail); |
|
echo "modification des images ayant une adresse mail mais pas d'identifiant"; |
$requete_annu_mail = "UPDATE ".$this->bd_cel.".`cel_images` join ".$this->bd_cel.".`users` ON `user_email` = courriel_utilisateur SET `ce_utilisateur` = `ID`, pseudo = user_nicename, |
`courriel_utilisateur` = `user_email` WHERE (ce_utilisateur IS NULL OR char_length(ce_utilisateur) > 6 |
OR ce_utilisateur = 0) and courriel_utilisateur like '%@%'"; |
$utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail); |
|
echo "modification des images ayant un identifiant"; |
$requete_annu_mail = "UPDATE ".$this->bd_cel.".`cel_images` join ".$this->bd_cel.".`users` ON ID = ce_utilisateur SET pseudo = user_nicename, |
`courriel_utilisateur` = `user_email` WHERE (ce_utilisateur IS NULL OR char_length(ce_utilisateur) > 6) and (courriel_utilisateur is null or courriel_utilisateur='')"; |
$utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail); |
|
echo "suppression des autres valeurs ce_utilisateur"; |
$requete_annu_mail = "UPDATE ".$this->bd_cel.".`cel_images` SET ce_utilisateur = NULL, courriel_utilisateur = if (ce_utilisateur like '%@%'and (courriel_utilisateur is null or courriel_utilisateur='') , ce_utilisateur, courriel_utilisateur) |
WHERE ce_utilisateur IS NOT NULL AND (LENGTH(ce_utilisateur) > 6 OR trim(ce_utilisateur) = '')"; |
$utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail); |
|
|
echo "suppression des images\n"; |
$requete_anonyme = "DELETE FROM ".$this->bd_cel.".`cel_images` WHERE (ce_utilisateur IS NULL OR char_length(ce_utilisateur) > 6 |
OR ce_utilisateur = 0) and (`courriel_utilisateur` is null or `courriel_utilisateur` not like '%@%')"; |
$this->bdd->requeter($requete_anonyme); |
|
|
/* echo "suppression des tags obs anonymes"; |
$requete_create = "CREATE TABLE ".$this->bd_cel.".user_mot_cle_absent AS SELECT distinct id_utilisateur FROM ".$this->bd_cel.".cel_arbre_mots_cles_obs WHERE id_utilisateur not in |
(SELECT distinct id_utilisateur FROM ".$this->bd_cel.".cel_arbre_mots_cles_obs WHERE id_utilisateur in |
(select distinct ce_utilisateur from ".$this->bd_cel.".cel_obs) or |
id_utilisateur in (SELECT distinct courriel_utilisateur FROM ".$this->bd_cel.".cel_obs))"; |
$this->bdd->requeter($requete_create); |
$requete_index = "ALTER TABLE ".$this->bd_cel.".`user_mot_cle_absent` ADD PRIMARY KEY(`id_utilisateur`);"; |
$this->bdd->requeter($requete_index); |
$requete_anonyme = "DELETE FROM ".$this->bd_cel.".`cel_arbre_mots_cles_obs` WHERE `id_utilisateur` in (SELECT * FROM ".$this->bd_cel.".`user_mot_cle_absent`);"; |
$this->bdd->requeter($requete_anonyme); |
$requete_anonyme = "DROP TABLE ".$this->bd_cel.".user_mot_cle_absent;"; |
$this->bdd->requeter($requete_anonyme); |
$requete_anonyme = "UPDATE ".$this->bd_cel.".`cel_arbre_mots_cles_obs` a join ".$this->bd_cel.".cel_obs b on a.`id_utilisateur` = b.courriel_utilisateur SET a.`id_utilisateur` = b.ce_utilisateur |
WHERE b.ce_utilisateur IS NOT NULL AND b.ce_utilisateur != ''"; |
$this->bdd->requeter($requete_anonyme);*/ |
|
} |
|
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 ".$this->bd_cel.".cel_obs SET nom_referentiel = '".$referentiel."' WHERE nom_referentiel like '".$referentiel."%'"; |
$this->bdd->requeter($requete); |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET nom_referentiel = 'Autre/inconnu' WHERE nom_sel_nn IS NULL or nom_sel_nn = '0'"; |
$this->bdd->requeter($requete); |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET nom_referentiel = 'apd' WHERE nom_referentiel like 'bdtao%'"; |
$this->bdd->requeter($requete); |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET nom_referentiel = 'bdtfx' WHERE nom_referentiel like 'bdnff%'"; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET nom_referentiel = 'Autre/inconnu' WHERE nom_referentiel IS NULL or nom_referentiel = ''"; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
$requete_verif = "SELECT nom_referentiel FROM ".$this->bd_cel.".cel_obs WHERE nom_referentiel NOT IN ('".implode("', '", $referentiels)."', 'Autre/inconnu')"; |
$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 ".$this->bd_cel.".`cel_obs_etendues` WHERE `id_observation` not in (select `id_observation` from ".$this->bd_cel.".cel_obs);"; |
$this->bdd->requeter($requete); |
$requete = "DELETE FROM ".$this->bd_cel.".`cel_mots_cles_obs_liaison` WHERE `id_element_lie` not in (select `id_observation` from ".$this->bd_cel.".cel_obs);"; |
$this->bdd->requeter($requete); |
$requete = "DELETE FROM ".$this->bd_cel.".`cel_mots_cles_obs_liaison` WHERE `id_mot_cle` not in (SELECT `id_mot_cle` FROM ".$this->bd_cel.".`cel_arbre_mots_cles_obs`);"; |
$this->bdd->requeter($requete); |
$requete = "DELETE FROM ".$this->bd_cel.".`cel_images` WHERE `ce_observation` is not null and `ce_observation` not in (select id_observation from ".$this->bd_cel.".cel_obs)"; |
$this->bdd->requeter($requete); |
$requete = "DELETE FROM ".$this->bd_cel.".`cel_mots_cles_images_liaison` WHERE `id_element_lie` not in (select `id_image` from ".$this->bd_cel.".cel_images);"; |
$this->bdd->requeter($requete); |
$requete = "DELETE FROM ".$this->bd_cel.".`cel_mots_cles_images_liaison` WHERE `id_mot_cle` not in (SELECT `id_mot_cle` FROM ".$this->bd_cel.".`cel_arbre_mots_cles_images`);"; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
|
private function verifierGeodatum() { |
echo "Uniformisation du geodatum"; |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET geodatum = 'WGS84' WHERE (latitude IS NOT NULL or latitude != '0.00000') AND geodatum IS NULL"; |
$this->bdd->requeter($requete); |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET geodatum = NULL WHERE (latitude IS NULL or latitude = '0.00000')"; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
echo "Suppression des coordonnées fausses : "; |
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET latitude = NULL, longitude = NULL WHERE latitude < -90 OR latitude > 90 OR longitude < -180 OR longitude > 180"; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
} |
|
private function verifierCodeInsee() { |
echo "Mise à jour des valeurs code_insee"; |
$requete = 'UPDATE `cel_obs` SET `ce_zone_geo` = NULL, |
commentaire = concat(if(commentaire is null, "", concat(commentaire, ", ")), if(ce_zone_geo is null, "", concat("Zone geo : ",ce_zone_geo))) where `ce_zone_geo` not like "insee-c%"'; |
$this->bdd->requeter($requete); |
$requete = 'UPDATE `cel_obs` SET `ce_zone_geo` = substr(`ce_zone_geo`, 9, 5) where `ce_zone_geo` like "insee-c:%"'; |
$this->bdd->requeter($requete); |
$requete = 'UPDATE `cel_obs` SET `ce_zone_geo` = NULL where trim(`ce_zone_geo`) = ""'; |
$this->bdd->requeter($requete); |
echo "effectuée \n"; |
|
|
echo "Vérification du code insee"; |
$requete = "ALTER TABLE ".$this->bd_cel.".`cel_obs` ADD IF NOT EXISTS `locality_consistency` INT(1) ;"; |
$this->bdd->requeter($requete); |
|
$requete = "UPDATE ".$this->bd_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 ".$this->bd_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); |
|
$requete_verif = "SELECT `ce_zone_geo`, `code_insee_calcule`, `locality_consistency` FROM `cel_obs` WHERE `locality_consistency` IS NOT NULL"; |
$verif = $this->bdd->recupererTous($requete_verif); |
if ($verif != array()) print_r($verif); |
echo "effectuée \n"; |
} |
|
private function analyserMotsCles(){ |
echo "Input source \n"; |
$requete = "ALTER TABLE ".$this->bd_cel.".`cel_obs` ADD IF NOT EXISTS `input_source` VARCHAR(15)"; |
$this->bdd->requeter($requete); |
|
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET input_source = 'PlantNet' WHERE `mots_cles_texte` like '%plantnet%'"; |
$this->bdd->requeter($requete); |
|
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET input_source = 'autre' WHERE `mots_cles_texte` like '%MobileSauvages%'"; |
$this->bdd->requeter($requete); |
|
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET input_source = 'widget' WHERE `mots_cles_texte` like '%Projets coopératifs%' and (input_source = '' OR input_source IS NULL)"; |
$this->bdd->requeter($requete); |
|
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET input_source = 'widget' WHERE `mots_cles_texte` like '%widget%' and (input_source = '' OR input_source IS NULL)"; |
$this->bdd->requeter($requete); |
|
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET input_source = 'CEL' WHERE input_source = '' OR input_source IS NULL"; |
$this->bdd->requeter($requete); |
|
echo "Suppression motcle du chemin \n"; |
$requete = "UPDATE ".$this->bd_cel.".`cel_arbre_mots_cles_obs` SET chemin = |
if(CHAR_LENGTH(chemin)-CHAR_LENGTH(`mot_cle`) = 2, '\/', substr(`chemin`, 1, CHAR_LENGTH(chemin)-CHAR_LENGTH(`mot_cle`)-2))"; |
$this->bdd->requeter($requete); |
|
$requete = "UPDATE ".$this->bd_cel.".`cel_arbre_mots_cles_images` SET chemin = |
substr(`chemin`, 1, CHAR_LENGTH(chemin)-CHAR_LENGTH(`mot_cle`)-1)"; |
$this->bdd->requeter($requete); |
|
echo "Certitude à certaine quand obs validée sur ip \n"; |
$requete = "UPDATE ".$this->bd_cel.".`cel_obs` c left join |
(SELECT distinct `ce_observation`, `nom_sel_nn` |
FROM ".$this->bd_del.".`del_commentaire` WHERE `proposition_retenue` = 1) d on |
`ce_observation` = `id_observation` SET `certitude` = 'certain' |
WHERE (c.`mots_cles_texte` LIKE '%adeterminer%' |
or c.`certitude` = 'à déterminer') and c.`nom_sel_nn` = d.`nom_sel_nn`"; |
$this->bdd->requeter($requete); |
|
echo "Certitude à douteux quand obs validée sur ip mais num_nom diff entre ip et cel \n"; |
$requete = "UPDATE ".$this->bd_cel.".`cel_obs` c left join |
(SELECT distinct `ce_observation`, `nom_sel_nn` |
FROM ".$this->bd_del.".`del_commentaire` WHERE `proposition_retenue` = 1 ) d on |
`ce_observation` = `id_observation` SET `certitude` = 'douteux' |
WHERE (c.`mots_cles_texte` LIKE '%adeterminer%' |
or c.`certitude` = 'à déterminer') and c.`nom_sel_nn` != d.`nom_sel_nn`"; |
$this->bdd->requeter($requete); |
|
echo "Certitude à aDeterminer quand obs non validée sur ip \n"; |
$requete = "UPDATE ".$this->bd_cel.".`cel_obs` c SET `certitude` = 'à déterminer' |
WHERE c.`mots_cles_texte` LIKE '%adeterminer%' AND |
(c.`certitude` = '' or c.certitude IS NULL)"; |
$this->bdd->requeter($requete); |
|
$requete = "UPDATE ".$this->bd_cel.".`cel_obs` SET |
`mots_cles_texte` = REPLACE(`mots_cles_texte`, 'aDeterminer,', '') |
WHERE `mots_cles_texte` LIKE '%adeterminer,%'"; |
$this->bdd->requeter($requete); |
|
|
} |
|
|
|
private function changerSensible(){ |
echo "Sensible \n"; |
$requete = "ALTER TABLE ".$this->bd_cel.".`cel_obs` ADD IF NOT EXISTS `published_location` varchar(50)"; |
$this->bdd->requeter($requete); |
|
$requete = "UPDATE ".$this->bd_cel.".cel_obs SET published_location = 'localité' WHERE `mots_cles_texte` like '%sensible%'"; |
$this->bdd->requeter($requete); |
} |
} |