Subversion Repositories eFlore/Applications.cel

Rev

Rev 3136 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3136 Rev 3259
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe de nettoyage de la base de données du CEL.
4
 * Classe de nettoyage de la base de données du CEL.
5
 * Suppression des antislash
5
 * Suppression des antislash
6
 * Remplacement des chaines vides par des NULL
6
 * Remplacement des chaines vides par des NULL
7
 * Unifier les référentiels : pas de nom de version, majuscule...
7
 * Unifier les référentiels : pas de nom de version, majuscule...
8
 * Unifier les certitudes
8
 * Unifier les certitudes
9
 * Supprimer les INSEE-C: non rempli, les dates 0000-00 
9
 * Supprimer les INSEE-C: non rempli, les dates 0000-00 
10
 *
10
 *
11
 * Utilisation :
11
 * Utilisation :
12
 * - <code>/opt/lamp/bin/php cli.php nettoyage -a (voir méthode executer)</code>
12
 * - <code>/opt/lamp/bin/php cli.php nettoyage -a (voir méthode executer)</code>
13
 *
13
 *
14
 * @category   CEL
14
 * @category   CEL
15
 * @package    Scripts
15
 * @package    Scripts
16
 * @subpackage Nettoyage
16
 * @subpackage Nettoyage
17
 * @author     Delphine CAUQUIL <delphine@tela-botanica.org>
17
 * @author     Delphine CAUQUIL <delphine@tela-botanica.org>
18
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
18
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
19
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
19
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
20
 * @copyright  1999-2016 Tela Botanica <accueil@tela-botanica.org>
20
 * @copyright  1999-2016 Tela Botanica <accueil@tela-botanica.org>
21
 */
21
 */
22
class Nettoyage extends Script {
22
class Nettoyage extends Script {
23
 
23
 
24
	protected $bdd;
24
	protected $bdd;
25
	protected $colonnes;
25
	protected $colonnes;
26
 
26
 
27
 
27
 
28
	public function __construct($script_nom, $parametres_cli) {
28
	public function __construct($script_nom, $parametres_cli) {
29
		parent::__construct($script_nom, $parametres_cli);
29
		parent::__construct($script_nom, $parametres_cli);
30
		$this->bdd = new Bdd();
30
		$this->bdd = new Bdd();
31
	}
31
	}
32
 
32
 
33
	public function executer() {
33
	public function executer() {
34
		$cmd = $this->getParametre('a');
34
		$cmd = $this->getParametre('a');
35
		$requete_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'cel_obs' AND table_schema='tb_cel';";
35
		$requete_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'tb_nettoye_cel.cel_obs' AND table_schema='tb_cel';";
36
		$this->colonnes = $this->bdd->recupererTous($requete_colonnes);
36
		$this->colonnes = $this->bdd->recupererTous($requete_colonnes);
37
		try {
37
		try {
38
			switch ($cmd) {
38
			switch ($cmd) {
39
				case 'tout' :
39
				case 'tout' :
40
					$this->supprimerRetourLigne();
40
					$this->supprimerRetourLigne();
41
					$this->supprimerAntislash();
41
					$this->supprimerAntislash();
42
					$this->supprimerGuillement();
42
					$this->supprimerGuillement();
-
 
43
					$this->unifierNull();
43
					$this->unifierNomReferentiel();
44
					$this->unifierNomReferentiel();
44
					$this->unifierCertitude();
45
					$this->unifierCertitude();
-
 
46
					$this->supprimerCertitudeAutre();
-
 
47
					$this->unifierUtilisateur();
-
 
48
					$this->verifierCodeInsee();
45
					$this->verifierGeodatum();
49
					$this->verifierGeodatum();
-
 
50
					$this->analyserMotsCles();
-
 
51
					$this->supprimerInfosLiesObsInexistante();
46
					$this->unifierNull();
52
					$this->unifierNull();
47
					break;
53
					break;
48
				case 'supprimerAntislash' :
54
				case 'supprimerAntislash' :
49
					$this->supprimerAntislash();
55
					$this->supprimerAntislash();
50
					break;
56
					break;
51
				case 'unifierNomReferentiel' :
57
				case 'unifierNomReferentiel' :
52
					$this->unifierNomReferentiel();
58
					$this->unifierNomReferentiel();
53
					break;
59
					break;
54
				case 'unifierCertitude' :
60
				case 'unifierCertitude' :
55
					$this->unifierCertitude();
61
					$this->unifierCertitude();
56
					break;
62
					break;
-
 
63
				case 'supprimerCertitudeAutre' : // après unifier certitude si les autres valeurs sont bien à supprimer
-
 
64
				    $this->supprimerCertitudeAutre();
-
 
65
				    break;
-
 
66
				case 'analyserMotsCles' : // après unifier certitude si les autres valeurs sont bien à supprimer
-
 
67
				    $this->analyserMotsCles();
-
 
68
				    break;
57
				case 'verifierGeodatum' :
69
				case 'verifierGeodatum' :
58
					$this->verifierGeodatum();
70
					$this->verifierGeodatum();
59
					break;
71
					break;
-
 
72
				case 'verifierCodeInsee' :
-
 
73
				    $this->verifierCodeInsee();
-
 
74
				    break;
60
				case 'unifierNull' : // lancer en dernier pour bien réussir
75
				case 'unifierNull' : // lancer en dernier pour bien réussir
61
					$this->unifierNull();
76
					$this->unifierNull();
62
					break;
77
					break;
-
 
78
				case 'supprimerInfosLiesObsInexistante' :
-
 
79
				    $this->supprimerInfosLiesObsInexistante();
-
 
80
				    break;
-
 
81
				case 'unifierUtilisateur' : 
-
 
82
				    $this->unifierUtilisateur();
-
 
83
				    break;
63
				default :
84
				default :
64
					$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
85
					$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
65
						"Commandes existantes : regenererMotsClesTexteObs, regenererMotsClesTexteImages"
86
						"Commandes existantes : regenererMotsClesTexteObs, regenererMotsClesTexteImages"
66
							. ", regenererMotsClesTexteObsTout, regenererMotsClesTexteImagesTout"
87
							. ", regenererMotsClesTexteObsTout, regenererMotsClesTexteImagesTout"
67
							. ", viderMotsClesTexteImagesSansMotsCles, viderMotsClesTexteObsSansMotsCles"
88
							. ", viderMotsClesTexteImagesSansMotsCles, viderMotsClesTexteObsSansMotsCles"
68
							. ", regenererChampsTailleImage, reparerLiaisonsOublieesObs, reparerLiaisonsOublieesImages"
89
							. ", regenererChampsTailleImage, reparerLiaisonsOublieesObs, reparerLiaisonsOublieesImages"
69
							. ", reparerLiaisonsObsParMotsClesTexte, reductionMotsClesImages, reductionMotsClesImagesUtil"
90
							. ", reparerLiaisonsObsParMotsClesTexte, reductionMotsClesImages, reductionMotsClesImagesUtil"
70
							. ", reduireEtNormaliserMotsClesImagesUtil, reduireEtNormaliserMotsClesImages"
91
							. ", reduireEtNormaliserMotsClesImagesUtil, reduireEtNormaliserMotsClesImages"
71
							. ", reductionMotsClesObs, reductionMotsClesObsUtil, reduireEtNormaliserMotsClesObsUtil"
92
							. ", reductionMotsClesObs, reductionMotsClesObsUtil, reduireEtNormaliserMotsClesObsUtil"
72
							. ", reduireEtNormaliserMotsClesObs";
93
							. ", reduireEtNormaliserMotsClesObs";
73
					throw new Exception($msg);
94
					throw new Exception($msg);
74
			}
95
			}
75
		} catch (Exception $e) {
96
		} catch (Exception $e) {
76
			$this->traiterErreur($e->getMessage());
97
			$this->traiterErreur($e->getMessage());
77
		}
98
		}
78
	}
99
	}
79
	
100
	
80
 
101
 
81
	private function supprimerRetourLigne() {		
102
	private function supprimerRetourLigne() {		
82
		foreach ($this->colonnes as $id=>$colonne) {
103
		foreach ($this->colonnes as $id=>$colonne) {
83
			echo "Suppression des retour ligne dans la colonne ".$colonne['column_name']." ...";
104
			echo "Suppression des retour ligne dans la colonne ".$colonne['column_name']." ...";
84
			$requete = "UPDATE cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\n", "")';
105
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\n", "")';
85
			$this->bdd->requeter($requete);
106
			$this->bdd->requeter($requete);
86
			echo "effectuée \n";
107
			echo "effectuée \n";
87
		}
108
		}
88
	}
109
	}
89
	
110
	
90
	private function supprimerAntislash() {
111
	private function supprimerAntislash() {
91
		foreach ($this->colonnes as $id=>$colonne) {
112
		foreach ($this->colonnes as $id=>$colonne) {
92
			echo "Suppression des antislash dans la colonne ".$colonne['column_name']." ...";
113
			echo "Suppression des antislash dans la colonne ".$colonne['column_name']." ...";
93
			$requete = "UPDATE cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\", "")';
114
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\", "")';
94
			$this->bdd->requeter($requete);
115
			$this->bdd->requeter($requete);
95
			echo "effectuée \n";
116
			echo "effectuée \n";
96
		}
117
		}
97
	}
118
	}
98
	
119
	
99
	private function supprimerGuillemet() {
120
	private function supprimerGuillemet() {
100
		foreach ($this->colonnes as $id=>$colonne) {
121
		foreach ($this->colonnes as $id=>$colonne) {
101
			echo "Suppression des guillements dans la colonne ".$colonne['column_name']." ...";
122
			echo "Suppression des guillements dans la colonne ".$colonne['column_name']." ...";
102
			$requete = "UPDATE cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].',"\"", "")';
123
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].',"\"", "")';
103
			$this->bdd->requeter($requete);
124
			$this->bdd->requeter($requete);
104
			echo "effectuée \n";
125
			echo "effectuée \n";
105
		}
126
		}
106
	}
127
	}
107
	
128
	
108
	private function unifierNull() {
129
	private function unifierNull() {
109
		$requete_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'cel_obs' AND table_schema='tb_cel';";
130
		$requete_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'tb_nettoye_cel.cel_obs' AND table_schema='tb_cel';";
110
		$colonnes = $this->bdd->recupererTous($requete_colonnes);
131
		$colonnes = $this->bdd->recupererTous($requete_colonnes);
111
		foreach ($colonnes as $colonne) {
132
		foreach ($colonnes as $colonne) {
112
			echo "Suppression des vides dans la colonne ".$colonne['column_name']." ...";
133
			echo "Suppression des vides dans la colonne ".$colonne['column_name']." ...";
113
			$dsl = array( 'transmission', 'altitude');
134
			$dsl = array( 'transmission', 'altitude');
114
			if (isset($dsl[$colonne['column_name']])) {
135
			if (isset($dsl[$colonne['column_name']])) {
115
				$requete = "UPDATE cel_obs SET ".$colonne['column_name']." = NULL WHERE ".$colonne['column_name']."= ''";
136
				$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = NULL WHERE ".$colonne['column_name']."= ''";
116
			} else {
137
			} else {
117
				$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')";
138
				$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')";
118
			}
139
			}
119
			$this->bdd->requeter($requete);
140
			$this->bdd->requeter($requete);
120
			echo "effectuée \n";
141
			echo "effectuée \n";
121
		}
142
		}
122
	}
143
	}
123
	
144
	
124
	private function unifierCertitude() {
145
	private function unifierCertitude() {
125
		echo "Uniformisation du champ certitude/identification";
146
		echo "Uniformisation du champ certitude/identification";
126
		$certitude = array("Douteuse" => "douteux",
147
		$certitude = array("A déterminer" => "à déterminer",
-
 
148
		    "À déterminer, voir photo" => "à déterminer",
-
 
149
		    "aDeterminer" => "à déterminer",
-
 
150
		    "déterminer" => "à déterminer",
-
 
151
		    "Inconnue" => "à déterminer",
127
			"Certainea" => "certain",
152
		    "Ceraine" => "certain",
128
			"Certaine" => "certain",
153
		    "certain" => "certain",
129
			"A déterminer" => "aDeterminer",
154
		    "Certainaaua" => "certain",
130
			"à vérifier" => "aDeterminer",
155
		    "Certaine" => "certain",
-
 
156
		    "Certaine K- rhizines blanche" => "certain",
-
 
157
		    "Certaine ( mais voir notes)" => "certain",
-
 
158
		    "Certaine (à 99%)" => "certain",
-
 
159
		    "Certaine Anett" => "certain",
-
 
160
		    "Certaine Anette" => "certain",
-
 
161
		    "Certaine Valériane officinale" => "certain",
-
 
162
		    "Certaine, Faite et confirmée par JM BERAUD" => "certain",
131
			"Certaine, par Jean Lebail" => "certain",
163
		    "Certaine, par Jean Lebail" => "certain",
-
 
164
		    "Certaine, subsp. minus" => "certain",
-
 
165
		    "Certainea" => "certain",
-
 
166
		    "Certaineanno" => "certain",
132
			"Certaine (à 99%)" => "certain",
167
		    "Certainearia n" => "certain",
-
 
168
		    "Certainee" => "certain",
-
 
169
		    "Certainej" => "certain",
-
 
170
		    "Certainel" => "certain",
-
 
171
		    "CertaineNom de travai" => "certain",
-
 
172
		    "CertaineNom de travail" => "certain",
-
 
173
		    "Certainesites" => "certain",
-
 
174
		    "Certainesous-bois de feuillus en versant sud à sud-ouest" => "certain",
-
 
175
		    "Certaineu" => "certain",
133
			"sur" => "certain");
176
		    "sure" => "certain",
-
 
177
		    "validée sur forum Naturalistes de l'ouest" => "certain",
-
 
178
		    "à confirmer" => "douteux",
-
 
179
		    "à approfondir" => "douteux",
-
 
180
		    "à cofirmer" => "douteux",
-
 
181
		    "À confiermer" => "douteux",
-
 
182
		    "A confirlmer" => "douteux",
-
 
183
		    "A confirmer" => "douteux",
-
 
184
		    "à confirmer vs. pumilum" => "douteux",
-
 
185
		    "à conirmer" => "douteux",
-
 
186
		    "à vérifier" => "douteux",
-
 
187
		    "douteuse" => "douteux",
-
 
188
		    "Douteuse (canadensis ?)" => "douteux",
-
 
189
		    "Douteuse ?" => "douteux",
-
 
190
		    "Douteuse à confirmer" => "douteux",
-
 
191
		    "Douteuse peut-être cordata" => "douteux",
-
 
192
		    "Douteuse, fleurs rouges" => "douteux",
-
 
193
		    "douteux" => "douteux",
-
 
194
		    "espèce bisannuelle mais non bien déterminée" => "douteux",
-
 
195
		    "Incertaine" => "douteux",
-
 
196
		    "Pavot douteux" => "douteux",
-
 
197
		    "Potentille ansérine, supposé" => "douteux",
-
 
198
		    "presque certaine" => "douteux",
-
 
199
		    "Quasi Certaine" => "douteux",
-
 
200
		    "ssp déterminer" => "douteux",
-
 
201
		    "subsp à vérifier" => "douteux",
-
 
202
		    "subsp. microphyllum ?" => "douteux",
-
 
203
		    "très douteuse" => "douteux",
-
 
204
		    "Très probable" => "douteux");
134
		foreach ($certitude as $valeur=>$saisie) {
205
		foreach ($certitude as $valeur=>$saisie) {
135
			$requete = "UPDATE cel_obs SET certitude = '".$saisie."' WHERE certitude ='".$valeur."'";
206
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET commentaire = concat(commentaire, ' ', certitude), certitude = '".$saisie."' WHERE certitude ='".$valeur."'";
136
			$this->bdd->requeter($requete);
207
			$this->bdd->requeter($requete);
137
			echo "effectuée \n";
208
			echo "effectuée \n";
138
		}
209
		}
139
		$requete_verif = "SELECT nom_referentiel FROM cel_obs WHERE certitude NOT IN ('douteux', 'certain', 'aDeterminer', '', NULL)";
210
		$requete_verif = "SELECT certitude FROM tb_nettoye_cel.cel_obs WHERE certitude NOT IN ('douteux', 'certain', 'aDeterminer', '', NULL)";
140
		$verif = $this->bdd->recupererTous($requete_verif);
211
		$verif = $this->bdd->recupererTous($requete_verif);
141
		if ($verif != array()) print_r($verif);
212
		if ($verif != array()) print_r($verif);
142
	}
213
	}
-
 
214
	
-
 
215
	private function supprimerCertitudeAutre() {
-
 
216
	    echo "suppression des valeurs non compréhensible du champ certitude/identification";
-
 
217
	    $requete = "UPDATE tb_nettoye_cel.cel_obs 
-
 
218
	        SET commentaire = case isnull(commentaire) when 1 THEN certitude ELSE concat(commentaire, ' ', certitude) END, 
-
 
219
	        certitude IS NULL WHERE `certitude` NOT IN ('douteux', 'certain', 'aDeterminer', '') and certitude is not NULL";
-
 
220
	    $this->bdd->requeter($requete);
-
 
221
	        echo "effectuée \n";
-
 
222
	    $requete_verif = "SELECT certitude FROM tb_nettoye_cel.cel_obs WHERE certitude NOT IN ('douteux', 'certain', 'aDeterminer', '', NULL)";
-
 
223
	    $verif = $this->bdd->recupererTous($requete_verif);
-
 
224
	    if ($verif != array()) print_r($verif);
-
 
225
	}
-
 
226
	
-
 
227
	private function unifierUtilisateur() {
-
 
228
	     echo "suppression des images anonymes";
-
 
229
	    $requete_anonyme = "DELETE FROM tb_nettoye_cel.`cel_images` WHERE (ce_utilisateur IS NULL OR LENGTH(ce_utilisateur) > 6
-
 
230
	        OR ce_utilisateur = 0) and `courriel_utilisateur` is null";
-
 
231
	    $this->bdd->requeter($requete_anonyme);
-
 
232
	    echo "suppression des tags images anonymes";
-
 
233
	    $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
-
 
234
	        OR ce_utilisateur = 0) and `courriel_utilisateur` is null)";
-
 
235
	    $this->bdd->requeter($requete_anonyme);
-
 
236
	    echo "suppression des tags obs anonymes";
-
 
237
	    $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
-
 
238
	        OR ce_utilisateur = 0) and `courriel_utilisateur` is null)";
-
 
239
	    $this->bdd->requeter($requete_anonyme); 
-
 
240
	    echo "suppression des obs anonymes";
-
 
241
	    $requete_anonyme = "DELETE FROM tb_nettoye_cel.`cel_obs` WHERE (ce_utilisateur IS NULL OR LENGTH(ce_utilisateur) > 6
-
 
242
	        OR ce_utilisateur = 0) and `courriel_utilisateur` is null";
-
 
243
	    $this->bdd->requeter($requete_anonyme);
-
 
244
	    
-
 
245
	    echo "modification des observations ayant une adresse mail en identifiant";
-
 
246
	    $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` , 
-
 
247
	        `courriel_utilisateur` =  `U_MAIL`  WHERE ce_utilisateur like '%@%'";
-
 
248
	    $utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail);
-
 
249
	    
-
 
250
	    echo "modification des observations ayant une adresse mail mais pas d'identifiant";
-
 
251
	    $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` ,
-
 
252
	        `courriel_utilisateur` =  `U_MAIL`  WHERE (ce_utilisateur IS NULL OR LENGTH(ce_utilisateur) > 6
-
 
253
	        OR ce_utilisateur = 0) and courriel_utilisateur like '%@%'";
-
 
254
	    $utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail);
-
 
255
	    
-
 
256
	    echo "modification des observations ayant un identifiant";
-
 
257
	    $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` ,
-
 
258
	        `courriel_utilisateur` =  `U_MAIL` WHERE (ce_utilisateur IS NOT NULL OR LENGTH(ce_utilisateur) > 6) and courriel_utilisateur not like '%@%'";
-
 
259
	    $utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail);
-
 
260
	    
-
 
261
	    $requete_verif = "SELECT `ce_utilisateur`, `prenom_utilisateur`, `nom_utilisateur`, `courriel_utilisateur`  FROM tb_nettoye_cel.cel_obs 
-
 
262
	            WHERE ce_utilisateur IS NOT NULL OR LENGTH(ce_utilisateur) > 6";
-
 
263
	    $verif = $this->bdd->recupererTous($requete_verif);
-
 
264
	    if ($verif != array()) print_r($verif);
-
 
265
	}
143
	
266
	
144
	private function unifierNomReferentiel() {
267
	private function unifierNomReferentiel() {
145
		echo "Uniformisation du nom de référentiel";
268
		echo "Uniformisation du nom de référentiel";
146
		$referentiels = array("BDTFX", "BDTRE", "BDTXA", "APD", "LBF", "ISFAN");
269
		$referentiels = array("BDTFX", "BDTRE", "BDTXA", "APD", "LBF", "ISFAN");
147
		foreach ($referentiels as $referentiel) {
270
		foreach ($referentiels as $referentiel) {
148
			$requete = "UPDATE cel_obs SET nom_referentiel = '".$referentiel."' WHERE nom_referentiel like '".$referentiel."%'";
271
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = '".$referentiel."' WHERE nom_referentiel like '".$referentiel."%'";
149
			$this->bdd->requeter($requete);
272
			$this->bdd->requeter($requete);
150
			$requete = "UPDATE cel_obs SET nom_referentiel = NULL WHERE nom_sel_nn = '' or nom_sel_nn = '0'";
273
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = NULL WHERE nom_sel_nn = '' or nom_sel_nn = '0'";
151
			$this->bdd->requeter($requete);
274
			$this->bdd->requeter($requete);
152
			$requete = "UPDATE cel_obs SET nom_referentiel = 'APD' WHERE nom_referentiel like 'bdtao%'";
275
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = 'APD' WHERE nom_referentiel like 'bdtao%'";
153
			$this->bdd->requeter($requete);
276
			$this->bdd->requeter($requete);
154
			$requete = "UPDATE cel_obs SET nom_referentiel = 'BDTFX' WHERE nom_referentiel like 'bdnff%'";
277
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = 'BDTFX' WHERE nom_referentiel like 'bdnff%'";
155
			$this->bdd->requeter($requete);
278
			$this->bdd->requeter($requete);
156
			echo "effectuée \n";
279
			echo "effectuée \n";
157
		}
280
		}
158
		$requete_verif = "SELECT nom_referentiel FROM cel_obs WHERE nom_referentiel NOT IN ('".implode("', '", $referentiels)."', 'autre')";
281
		$requete_verif = "SELECT nom_referentiel FROM tb_nettoye_cel.cel_obs WHERE nom_referentiel NOT IN ('".implode("', '", $referentiels)."', 'autre')";
159
		$verif = $this->bdd->recupererTous($requete_verif);
282
		$verif = $this->bdd->recupererTous($requete_verif);
160
		if ($verif != array()) print_r($verif);
283
		if ($verif != array()) print_r($verif);
161
	}
284
	}
-
 
285
	
-
 
286
	private function supprimerInfosLiesObsInexistante() {
-
 
287
	    echo "Supprimer infos liés à obs inexistante";
-
 
288
	    $requete = "DELETE FROM tb_nettoye_cel.`cel_obs_etendues` WHERE `id_observation` not in (select `id_observation` from tb_nettoye_cel.cel_obs);";
-
 
289
	    $this->bdd->requeter($requete);
-
 
290
	    $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);";
-
 
291
	    $this->bdd->requeter($requete);
-
 
292
	    $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);";
-
 
293
	    $this->bdd->requeter($requete);
-
 
294
	    echo "effectuée \n";
-
 
295
	}
162
	
296
	
163
	private function verifierGeodatum() {
297
	private function verifierGeodatum() {
164
		echo "Uniformisation du geodatum";
298
		echo "Uniformisation du geodatum";
165
		$requete = "UPDATE cel_obs SET geodatum = 'wgs84' WHERE (latitude IS NOT NULL or latitude != '0.00000') AND geodatum = ''";
299
		$requete = "UPDATE tb_nettoye_cel.cel_obs SET geodatum = 'wgs84' WHERE (latitude IS NOT NULL or latitude != '0.00000') AND geodatum = ''";
166
		$this->bdd->requeter($requete);
300
		$this->bdd->requeter($requete);
167
		$requete = "UPDATE cel_obs SET geodatum = NULL WHERE (latitude IS NULL or latitude == '0.00000')";
301
		$requete = "UPDATE tb_nettoye_cel.cel_obs SET geodatum = NULL WHERE (latitude IS NULL or latitude == '0.00000')";
168
		$this->bdd->requeter($requete);
302
		$this->bdd->requeter($requete);
169
		echo "effectuée \n";
303
		echo "effectuée \n";
170
	}
304
	}
-
 
305
	
-
 
306
	private function verifierCodeInsee() {
-
 
307
	    echo "Vérification du code insee";
-
 
308
	    $requete = "UPDATE tb_nettoye_cel.cel_obs SET locality_consistency = '0' WHERE 
-
 
309
	        ((ce_zone_geo != 'INSEE-C:' and ce_zone_geo like 'INSEE-C:%') and code_insee_calcule != '') and 
-
 
310
	        replace(`ce_zone_geo`, 'INSEE-C:', '') != `code_insee_calcule`";
-
 
311
	    $this->bdd->requeter($requete);
-
 
312
	    $requete = "UPDATE tb_nettoye_cel.cel_obs SET locality_consistency = '1' WHERE
-
 
313
	        ((ce_zone_geo != 'INSEE-C:' and ce_zone_geo like 'INSEE-C:%') and code_insee_calcule != '') and
-
 
314
	        replace(`ce_zone_geo`, 'INSEE-C:', '') = `code_insee_calcule`";$this->bdd->requeter($requete);
-
 
315
	    echo "effectuée \n";
-
 
316
	}
-
 
317
	
-
 
318
	private function analyserMotsCles(){
-
 
319
	    
-
 
320
	}
171
}
321
}
172
322