Subversion Repositories eFlore/Applications.cel

Rev

Rev 3297 | Rev 3304 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2893 delphine 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Classe de nettoyage de la base de données du CEL.
5
 * Suppression des antislash
6
 * Remplacement des chaines vides par des NULL
7
 * Unifier les référentiels : pas de nom de version, majuscule...
8
 * Unifier les certitudes
9
 * Supprimer les INSEE-C: non rempli, les dates 0000-00
10
 *
11
 * Utilisation :
12
 * - <code>/opt/lamp/bin/php cli.php nettoyage -a (voir méthode executer)</code>
13
 *
14
 * @category   CEL
15
 * @package    Scripts
16
 * @subpackage Nettoyage
17
 * @author     Delphine CAUQUIL <delphine@tela-botanica.org>
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>
20
 * @copyright  1999-2016 Tela Botanica <accueil@tela-botanica.org>
21
 */
22
class Nettoyage extends Script {
23
 
24
	protected $bdd;
2936 delphine 25
	protected $colonnes;
2893 delphine 26
 
27
 
28
	public function __construct($script_nom, $parametres_cli) {
29
		parent::__construct($script_nom, $parametres_cli);
30
		$this->bdd = new Bdd();
31
	}
32
 
33
	public function executer() {
34
		$cmd = $this->getParametre('a');
3258 delphine 35
		$requete_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'tb_nettoye_cel.cel_obs' AND table_schema='tb_cel';";
2936 delphine 36
		$this->colonnes = $this->bdd->recupererTous($requete_colonnes);
2893 delphine 37
		try {
38
			switch ($cmd) {
39
				case 'tout' :
2936 delphine 40
					$this->supprimerRetourLigne();
2893 delphine 41
					$this->supprimerAntislash();
3296 delphine 42
					$this->supprimerGuillemet();
3258 delphine 43
					$this->unifierNull();
2893 delphine 44
					$this->unifierNomReferentiel();
45
					$this->unifierCertitude();
3258 delphine 46
					$this->supprimerCertitudeAutre();
47
					$this->unifierUtilisateur();
48
					$this->verifierCodeInsee();
2893 delphine 49
					$this->verifierGeodatum();
3258 delphine 50
					$this->analyserMotsCles();
3303 delphine 51
					$this->changerSensible();
3258 delphine 52
					$this->supprimerInfosLiesObsInexistante();
2893 delphine 53
					$this->unifierNull();
54
					break;
3296 delphine 55
				case 'supprimerRetourLigne' :
56
				    $this->supprimerRetourLigne();
57
				    break;
2893 delphine 58
				case 'supprimerAntislash' :
59
					$this->supprimerAntislash();
60
					break;
3296 delphine 61
				case 'supprimerGuillemet' :
62
				    $this->supprimerGuillemet();
63
				    break;
2893 delphine 64
				case 'unifierNomReferentiel' :
65
					$this->unifierNomReferentiel();
66
					break;
67
				case 'unifierCertitude' :
68
					$this->unifierCertitude();
69
					break;
3258 delphine 70
				case 'supprimerCertitudeAutre' : // après unifier certitude si les autres valeurs sont bien à supprimer
71
				    $this->supprimerCertitudeAutre();
72
				    break;
73
				case 'analyserMotsCles' : // après unifier certitude si les autres valeurs sont bien à supprimer
74
				    $this->analyserMotsCles();
75
				    break;
2893 delphine 76
				case 'verifierGeodatum' :
77
					$this->verifierGeodatum();
78
					break;
3258 delphine 79
				case 'verifierCodeInsee' :
80
				    $this->verifierCodeInsee();
81
				    break;
3303 delphine 82
				case 'sensible' :
83
				    $this->changerSensible();
84
				    break;
2893 delphine 85
				case 'unifierNull' : // lancer en dernier pour bien réussir
86
					$this->unifierNull();
87
					break;
3258 delphine 88
				case 'supprimerInfosLiesObsInexistante' :
89
				    $this->supprimerInfosLiesObsInexistante();
90
				    break;
91
				case 'unifierUtilisateur' :
92
				    $this->unifierUtilisateur();
93
				    break;
3296 delphine 94
				case 'unifierInfosEspece' :
95
				    $this->unifierUtilisateur();
96
				    break;
2893 delphine 97
				default :
98
					$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
99
						"Commandes existantes : regenererMotsClesTexteObs, regenererMotsClesTexteImages"
100
							. ", regenererMotsClesTexteObsTout, regenererMotsClesTexteImagesTout"
101
							. ", viderMotsClesTexteImagesSansMotsCles, viderMotsClesTexteObsSansMotsCles"
102
							. ", regenererChampsTailleImage, reparerLiaisonsOublieesObs, reparerLiaisonsOublieesImages"
103
							. ", reparerLiaisonsObsParMotsClesTexte, reductionMotsClesImages, reductionMotsClesImagesUtil"
104
							. ", reduireEtNormaliserMotsClesImagesUtil, reduireEtNormaliserMotsClesImages"
105
							. ", reductionMotsClesObs, reductionMotsClesObsUtil, reduireEtNormaliserMotsClesObsUtil"
106
							. ", reduireEtNormaliserMotsClesObs";
107
					throw new Exception($msg);
108
			}
109
		} catch (Exception $e) {
110
			$this->traiterErreur($e->getMessage());
111
		}
112
	}
113
 
114
 
2936 delphine 115
	private function supprimerRetourLigne() {
116
		foreach ($this->colonnes as $id=>$colonne) {
117
			echo "Suppression des retour ligne dans la colonne ".$colonne['column_name']." ...";
3258 delphine 118
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\n", "")';
2936 delphine 119
			$this->bdd->requeter($requete);
120
			echo "effectuée \n";
121
		}
122
	}
2893 delphine 123
 
124
	private function supprimerAntislash() {
2936 delphine 125
		foreach ($this->colonnes as $id=>$colonne) {
2893 delphine 126
			echo "Suppression des antislash dans la colonne ".$colonne['column_name']." ...";
3258 delphine 127
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].', "\", "")';
2893 delphine 128
			$this->bdd->requeter($requete);
129
			echo "effectuée \n";
130
		}
131
	}
132
 
2936 delphine 133
	private function supprimerGuillemet() {
134
		foreach ($this->colonnes as $id=>$colonne) {
135
			echo "Suppression des guillements dans la colonne ".$colonne['column_name']." ...";
3258 delphine 136
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = REPLACE(".$colonne['column_name'].',"\"", "")';
2936 delphine 137
			$this->bdd->requeter($requete);
138
			echo "effectuée \n";
139
		}
140
	}
141
 
2893 delphine 142
	private function unifierNull() {
3258 delphine 143
		$requete_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'tb_nettoye_cel.cel_obs' AND table_schema='tb_cel';";
2893 delphine 144
		$colonnes = $this->bdd->recupererTous($requete_colonnes);
145
		foreach ($colonnes as $colonne) {
146
			echo "Suppression des vides dans la colonne ".$colonne['column_name']." ...";
2895 delphine 147
			$dsl = array( 'transmission', 'altitude');
2894 delphine 148
			if (isset($dsl[$colonne['column_name']])) {
3258 delphine 149
				$requete = "UPDATE tb_nettoye_cel.cel_obs SET ".$colonne['column_name']." = NULL WHERE ".$colonne['column_name']."= ''";
2894 delphine 150
			} else {
3258 delphine 151
				$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')";
2894 delphine 152
			}
2893 delphine 153
			$this->bdd->requeter($requete);
154
			echo "effectuée \n";
155
		}
156
	}
157
 
158
	private function unifierCertitude() {
159
		echo "Uniformisation du champ certitude/identification";
3258 delphine 160
		$certitude = array("A déterminer" => "à déterminer",
161
		    "À déterminer, voir photo" => "à déterminer",
162
		    "aDeterminer" => "à déterminer",
163
		    "déterminer" => "à déterminer",
164
		    "Inconnue" => "à déterminer",
165
		    "Ceraine" => "certain",
166
		    "certain" => "certain",
167
		    "Certainaaua" => "certain",
168
		    "Certaine" => "certain",
169
		    "Certaine K- rhizines blanche" => "certain",
170
		    "Certaine ( mais voir notes)" => "certain",
171
		    "Certaine (à 99%)" => "certain",
172
		    "Certaine Anett" => "certain",
173
		    "Certaine Anette" => "certain",
174
		    "Certaine Valériane officinale" => "certain",
175
		    "Certaine, Faite et confirmée par JM BERAUD" => "certain",
176
		    "Certaine, par Jean Lebail" => "certain",
177
		    "Certaine, subsp. minus" => "certain",
178
		    "Certainea" => "certain",
179
		    "Certaineanno" => "certain",
180
		    "Certainearia n" => "certain",
181
		    "Certainee" => "certain",
182
		    "Certainej" => "certain",
183
		    "Certainel" => "certain",
184
		    "CertaineNom de travai" => "certain",
185
		    "CertaineNom de travail" => "certain",
186
		    "Certainesites" => "certain",
187
		    "Certainesous-bois de feuillus en versant sud à sud-ouest" => "certain",
188
		    "Certaineu" => "certain",
189
		    "sure" => "certain",
190
		    "validée sur forum Naturalistes de l'ouest" => "certain",
191
		    "à confirmer" => "douteux",
192
		    "à approfondir" => "douteux",
193
		    "à cofirmer" => "douteux",
194
		    "À confiermer" => "douteux",
195
		    "A confirlmer" => "douteux",
196
		    "A confirmer" => "douteux",
197
		    "à confirmer vs. pumilum" => "douteux",
198
		    "à conirmer" => "douteux",
199
		    "à vérifier" => "douteux",
200
		    "douteuse" => "douteux",
201
		    "Douteuse (canadensis ?)" => "douteux",
202
		    "Douteuse ?" => "douteux",
203
		    "Douteuse à confirmer" => "douteux",
204
		    "Douteuse peut-être cordata" => "douteux",
205
		    "Douteuse, fleurs rouges" => "douteux",
206
		    "douteux" => "douteux",
207
		    "espèce bisannuelle mais non bien déterminée" => "douteux",
208
		    "Incertaine" => "douteux",
209
		    "Pavot douteux" => "douteux",
210
		    "Potentille ansérine, supposé" => "douteux",
211
		    "presque certaine" => "douteux",
212
		    "Quasi Certaine" => "douteux",
213
		    "ssp déterminer" => "douteux",
214
		    "subsp à vérifier" => "douteux",
215
		    "subsp. microphyllum ?" => "douteux",
216
		    "très douteuse" => "douteux",
217
		    "Très probable" => "douteux");
2893 delphine 218
		foreach ($certitude as $valeur=>$saisie) {
3297 delphine 219
			$requete = 'UPDATE tb_nettoye_cel.cel_obs SET commentaire = concat(commentaire, " Certitude : ", certitude), certitude = "'.$saisie.'" WHERE certitude ="'.$valeur.'"';
2893 delphine 220
			$this->bdd->requeter($requete);
221
			echo "effectuée \n";
222
		}
3297 delphine 223
		$requete_verif = "SELECT certitude FROM tb_nettoye_cel.cel_obs WHERE certitude NOT IN ('douteux', 'certain', 'à déterminer', '') and certitude is not NULL";
2893 delphine 224
		$verif = $this->bdd->recupererTous($requete_verif);
225
		if ($verif != array()) print_r($verif);
226
	}
227
 
3258 delphine 228
	private function supprimerCertitudeAutre() {
229
	    echo "suppression des valeurs non compréhensible du champ certitude/identification";
230
	    $requete = "UPDATE tb_nettoye_cel.cel_obs
3296 delphine 231
	        SET commentaire = case isnull(commentaire) when 1 THEN certitude ELSE concat(commentaire, ' Certitude : ', certitude) END,
232
	        certitude = '' WHERE `certitude` NOT IN ('douteux', 'certain', 'à déterminer', '') and certitude is not NULL";
3258 delphine 233
	    $this->bdd->requeter($requete);
234
	        echo "effectuée \n";
3296 delphine 235
	    $requete_verif = "SELECT certitude FROM tb_nettoye_cel.cel_obs WHERE certitude NOT IN ('douteux', 'certain', 'aDeterminer', '') and certitude is not NULL";
3258 delphine 236
	    $verif = $this->bdd->recupererTous($requete_verif);
237
	    if ($verif != array()) print_r($verif);
238
	}
239
 
240
	private function unifierUtilisateur() {
3297 delphine 241
	    echo "suppression de le colonne ordre \n";
242
	    $requete = "ALTER TABLE tb_nettoye_cel.cel_obs DROP INDEX id_obs;";
243
	    $this->bdd->requeter($requete);
244
	    $requete = "ALTER TABLE tb_nettoye_cel.cel_obs DROP INDEX ordre;";
245
	    $this->bdd->requeter($requete);
246
	    $requete = "ALTER TABLE tb_nettoye_cel.`cel_obs` DROP `ordre`;";
247
	    $this->bdd->requeter($requete);
3258 delphine 248
 
249
	    echo "modification des observations ayant une adresse mail en identifiant";
250
	    $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` ,
251
	        `courriel_utilisateur` =  `U_MAIL`  WHERE ce_utilisateur like '%@%'";
252
	    $utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail);
253
 
254
	    echo "modification des observations ayant une adresse mail mais pas d'identifiant";
255
	    $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` ,
256
	        `courriel_utilisateur` =  `U_MAIL`  WHERE (ce_utilisateur IS NULL OR LENGTH(ce_utilisateur) > 6
257
	        OR ce_utilisateur = 0) and courriel_utilisateur like '%@%'";
258
	    $utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail);
259
 
260
	    echo "modification des observations ayant un identifiant";
261
	    $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` ,
3296 delphine 262
	        `courriel_utilisateur` =  `U_MAIL` WHERE (ce_utilisateur IS NOT NULL OR LENGTH(ce_utilisateur) > 6) and (courriel_utilisateur is null or courriel_utilisateur='')";
3258 delphine 263
	    $utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail);
264
 
3296 delphine 265
	    echo "suppression des autres valeurs ce_utilisateur";
266
	    $requete_annu_mail = "UPDATE tb_nettoye_cel.`cel_obs` SET ce_utilisateur = NULL WHERE ce_utilisateur IS NOT NULL AND LENGTH(ce_utilisateur) > 6";
267
	    $utilisateur_mail = $this->bdd->recupererTous($requete_annu_mail);
268
 
3297 delphine 269
 
270
	    echo "suppression des images anonymes";
271
	    $requete_anonyme = "DELETE FROM tb_nettoye_cel.`cel_images` WHERE (ce_utilisateur IS NULL OR LENGTH(ce_utilisateur) > 6
272
	        OR ce_utilisateur = 0) and (`courriel_utilisateur` is null or `courriel_utilisateur` not like '%@%')";
273
	    $this->bdd->requeter($requete_anonyme);
274
	    echo "suppression des tags images anonymes";
275
	    $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
276
	        OR ce_utilisateur = 0) and (`courriel_utilisateur` is null or `courriel_utilisateur` not like '%@%'))";
277
	    $this->bdd->requeter($requete_anonyme);
278
	    echo "suppression des tags obs anonymes";
279
	    $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
280
	        OR ce_utilisateur = 0) and (`courriel_utilisateur` is null or `courriel_utilisateur` not like '%@%'))";
281
	    $this->bdd->requeter($requete_anonyme);
282
	    echo "suppression des obs anonymes";
283
	    $requete_anonyme = "DELETE FROM tb_nettoye_cel.`cel_obs` WHERE (ce_utilisateur IS NULL OR LENGTH(ce_utilisateur) > 6
284
	        OR ce_utilisateur = 0) and (`courriel_utilisateur` is null or `courriel_utilisateur` not like '%@%')";
285
	    $this->bdd->requeter($requete_anonyme);
286
 
3258 delphine 287
	    $requete_verif = "SELECT `ce_utilisateur`, `prenom_utilisateur`, `nom_utilisateur`, `courriel_utilisateur`  FROM tb_nettoye_cel.cel_obs
288
	            WHERE ce_utilisateur IS NOT NULL OR LENGTH(ce_utilisateur) > 6";
289
	    $verif = $this->bdd->recupererTous($requete_verif);
290
	    if ($verif != array()) print_r($verif);
3296 delphine 291
	    echo "effectuée \n";
3258 delphine 292
	}
293
 
2893 delphine 294
	private function unifierNomReferentiel() {
295
		echo "Uniformisation du nom de référentiel";
296
		$referentiels = array("BDTFX", "BDTRE", "BDTXA", "APD", "LBF", "ISFAN");
297
		foreach ($referentiels as $referentiel) {
3258 delphine 298
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = '".$referentiel."' WHERE nom_referentiel like '".$referentiel."%'";
2893 delphine 299
			$this->bdd->requeter($requete);
3296 delphine 300
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = 'autre' WHERE nom_sel_nn = '' or nom_sel_nn = '0'";
2894 delphine 301
			$this->bdd->requeter($requete);
3258 delphine 302
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = 'APD' WHERE nom_referentiel like 'bdtao%'";
2895 delphine 303
			$this->bdd->requeter($requete);
3258 delphine 304
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = 'BDTFX' WHERE nom_referentiel like 'bdnff%'";
2895 delphine 305
			$this->bdd->requeter($requete);
2893 delphine 306
			echo "effectuée \n";
3296 delphine 307
			$requete = "UPDATE tb_nettoye_cel.cel_obs SET nom_referentiel = 'autre' WHERE nom_referentiel IS NULL or nom_referentiel = ''";
308
			$this->bdd->requeter($requete);
309
			echo "effectuée \n";
2893 delphine 310
		}
3258 delphine 311
		$requete_verif = "SELECT nom_referentiel FROM tb_nettoye_cel.cel_obs WHERE nom_referentiel NOT IN ('".implode("', '", $referentiels)."', 'autre')";
2893 delphine 312
		$verif = $this->bdd->recupererTous($requete_verif);
313
		if ($verif != array()) print_r($verif);
314
	}
315
 
3258 delphine 316
	private function supprimerInfosLiesObsInexistante() {
317
	    echo "Supprimer infos liés à obs inexistante";
318
	    $requete = "DELETE FROM tb_nettoye_cel.`cel_obs_etendues` WHERE `id_observation` not in (select `id_observation` from tb_nettoye_cel.cel_obs);";
319
	    $this->bdd->requeter($requete);
320
	    $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);";
321
	    $this->bdd->requeter($requete);
322
	    $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);";
323
	    $this->bdd->requeter($requete);
324
	    echo "effectuée \n";
325
	}
326
 
2893 delphine 327
	private function verifierGeodatum() {
328
		echo "Uniformisation du geodatum";
3296 delphine 329
		$requete = "UPDATE tb_nettoye_cel.cel_obs SET geodatum = 'WGS84' WHERE (latitude IS NOT NULL or latitude != '0.00000') AND geodatum IS NULL";
2893 delphine 330
		$this->bdd->requeter($requete);
3297 delphine 331
		$requete = "UPDATE tb_nettoye_cel.cel_obs SET geodatum = NULL WHERE (latitude IS NULL or latitude = '0.00000')";
2895 delphine 332
		$this->bdd->requeter($requete);
2893 delphine 333
		echo "effectuée \n";
334
	}
3258 delphine 335
 
336
	private function verifierCodeInsee() {
337
	    echo "Vérification du code insee";
3297 delphine 338
	    $requete = "ALTER TABLE tb_nettoye_cel`cel_obs` ADD `locality_consistency` INT(1) ;";
339
	    $this->bdd->requeter($requete);
340
 
3258 delphine 341
	    $requete = "UPDATE tb_nettoye_cel.cel_obs SET locality_consistency = '0' WHERE
342
	        ((ce_zone_geo != 'INSEE-C:' and ce_zone_geo like 'INSEE-C:%') and code_insee_calcule != '') and
343
	        replace(`ce_zone_geo`, 'INSEE-C:', '') != `code_insee_calcule`";
344
	    $this->bdd->requeter($requete);
345
	    $requete = "UPDATE tb_nettoye_cel.cel_obs SET locality_consistency = '1' WHERE
346
	        ((ce_zone_geo != 'INSEE-C:' and ce_zone_geo like 'INSEE-C:%') and code_insee_calcule != '') and
3296 delphine 347
	        replace(`ce_zone_geo`, 'INSEE-C:', '') = `code_insee_calcule`";
348
	    $this->bdd->requeter($requete);
349
 
350
	    $requete_verif = "SELECT `ce_zone_geo`, `code_insee_calcule`, `locality_consistency` FROM `cel_obs` WHERE `locality_consistency` IS NOT NULL";
351
	    $verif = $this->bdd->recupererTous($requete_verif);
352
	    if ($verif != array()) print_r($verif);
3258 delphine 353
	    echo "effectuée \n";
354
	}
355
 
356
	private function analyserMotsCles(){
3296 delphine 357
	    echo "Input source \n";
3297 delphine 358
	    $requete = "ALTER TABLE tb_nettoye_cel`cel_obs` ADD `input_source` VARCHAR(15)";
359
	    $this->bdd->requeter($requete);
360
 
3296 delphine 361
	    $requete = "UPDATE tb_nettoye_cel.cel_obs SET input_source = 'plantnet' WHERE `mots_cles_texte` like '%plantnet%'";
362
	    $this->bdd->requeter($requete);
3258 delphine 363
 
3296 delphine 364
	    $requete = "UPDATE tb_nettoye_cel.cel_obs SET input_source = 'autre' WHERE `mots_cles_texte` like '%MobileSauvages%'";
365
	    $this->bdd->requeter($requete);
366
 
367
	    $requete = "UPDATE tb_nettoye_cel.cel_obs SET input_source = 'widget' WHERE `mots_cles_texte` like '%Projets coopératifs%' and input_source = ''";
368
	    $this->bdd->requeter($requete);
369
 
370
	    $requete = "UPDATE tb_nettoye_cel.cel_obs SET input_source = 'widget' WHERE `mots_cles_texte` like '%widget%' and input_source = ''";
371
	    $this->bdd->requeter($requete);
372
 
373
	    $requete = "UPDATE tb_nettoye_cel.cel_obs SET input_source = 'cel' WHERE input_source = ''";
374
	    $this->bdd->requeter($requete);
375
 
376
	    echo "Suppression motcle du chemin \n";
377
	    $requete = "UPDATE tb_nettoye_cel.`cel_arbre_mots_cles_obs` SET chemin = substr(`chemin`, 1, CHAR_LENGTH(chemin)-CHAR_LENGTH(`mot_cle`)-1)";
378
	    $this->bdd->requeter($requete);
379
 
380
	    $requete = "UPDATE tb_nettoye_cel.`cel_arbre_mots_cles_images` SET chemin = substr(`chemin`, 1, CHAR_LENGTH(chemin)-CHAR_LENGTH(`mot_cle`)-1)";
381
	    $this->bdd->requeter($requete);
382
 
383
	    echo "Certitude à certaine quand obs validée sur ip \n";
384
	    $requete = "UPDATE tb_nettoye_cel.`cel_obs` c left join
385
	        (SELECT distinct `ce_observation`, sum(`proposition_retenue`) as s, `nom_sel_nn`
386
	        FROM tb_del.`del_commentaire` group by `ce_observation`) d on
387
	        `ce_observation` = `id_observation` SET `certitude` = 'certain'
388
	        WHERE s = 1 and (c.`mots_cles_texte` LIKE '%adeterminer%'
389
	        or c.`certitude` = 'aDeterminer') and c.`nom_sel_nn` = d.`nom_sel_nn`";
390
	    $this->bdd->requeter($requete);
391
 
392
	    echo "Certitude à douteux quand obs validée sur ip mais num_nom diff entre ip et cel \n";
393
	    $requete = "UPDATE tb_nettoye_cel.`cel_obs` c left join
394
	        (SELECT distinct `ce_observation`, sum(`proposition_retenue`) as s, `nom_sel_nn`
395
	        FROM tb_del.`del_commentaire` group by `ce_observation`) d on
396
	        `ce_observation` = `id_observation` SET `certitude` = 'douteux'
397
	        WHERE s = 1 and (c.`mots_cles_texte` LIKE '%adeterminer%'
398
	        or c.`certitude` = 'aDeterminer') and c.`nom_sel_nn` != d.`nom_sel_nn`";
399
	    $this->bdd->requeter($requete);
400
 
401
	    echo "Certitude à aDeterminer quand obs non validée sur ip \n";
402
	    $requete = "UPDATE tb_nettoye_cel.`cel_obs` c SET `certitude` = 'aDeterminer'
403
	        WHERE c.`mots_cles_texte` LIKE '%adeterminer%' AND
404
	        (c.`certitude` = '' or c.certitude IS NULL)";
405
	    $this->bdd->requeter($requete);
406
 
407
	    $requete = "UPDATE tb_nettoye_cel.`cel_obs` SET
408
	        `mots_cles_texte` = REPLACE(`mots_cles_texte`, 'aDeterminer,', '')
409
	        WHERE `mots_cles_texte` LIKE '%adeterminer,%'";
410
	    $this->bdd->requeter($requete);
411
 
412
	    $requete = "UPDATE tb_nettoye_cel.`cel_obs` SET
413
	        `mots_cles_texte` = REPLACE(`mots_cles_texte`, ',aDeterminer', '')
414
	        WHERE `mots_cles_texte` LIKE '%,adeterminer'";
415
	    $this->bdd->requeter($requete);
416
 
417
	    $requete = "UPDATE tb_nettoye_cel.`cel_obs` SET
418
	        `mots_cles_texte` = REPLACE(`mots_cles_texte`, 'aDeterminer', '')
419
	        WHERE `mots_cles_texte` LIKE '%adeterminer%'";
420
	    $this->bdd->requeter($requete);
3258 delphine 421
	}
3303 delphine 422
 
423
	private function changerSensible(){
424
	    echo "Sensible \n";
425
	    $requete = "ALTER TABLE tb_nettoye_cel`cel_obs` ADD `published_location` int(1)";
426
	    $this->bdd->requeter($requete);
427
 
428
	    $requete = "UPDATE tb_nettoye_cel.cel_obs SET published_location = '1' WHERE `mots_cles_texte` like '%sensible%'";
429
	    $this->bdd->requeter($requete);
430
	}
2893 delphine 431
}