Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 1191 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1191 Rev 1278
1
<?php
1
<?php
2
/** Exemple lancement:
2
/** Exemple lancement:
3
 * /opt/lampp/bin/php -d memory_limit=3500M cli.php sptb -a chargerTous
3
 * /opt/lampp/bin/php -d memory_limit=3500M cli.php sptb -a chargerTous
4
*/
4
*/
5
class Sptb extends EfloreScript {
5
class Sptb extends EfloreScript {
6
 
6
 
7
	public function executer() {
7
	public function executer() {
8
		// Lancement de l'action demandée
8
		// Lancement de l'action demandée
9
		try {
9
		try {
10
			$this->initialiserProjet('sptb');
10
			$this->initialiserProjet('sptb');
11
 
11
 
12
			$cmd = $this->getParametre('a');
12
			$cmd = $this->getParametre('a');
13
		    switch ($cmd) {
13
		    switch ($cmd) {
14
		    	case 'chargerTous' :
14
		    	case 'chargerTous' :
15
		    		$this->chargerStructureSql();
15
		    		$this->chargerStructureSql();
16
		    		$this->chargerDonnees('especes');
16
		    		$this->chargerDonnees('especes');
17
		    		$this->chargerDonnees('lois');
-
 
18
		    		$this-> ajouterChamps();
-
 
19
		    		$this->genererChampNumNomRetenu();
17
		    		$this->genererChampNumNomRetenu();
20
		    		break;
18
		    		break;
21
	    		case 'chargerStructureSql' :
19
	    		case 'chargerStructureSql' :
22
	    			$this->chargerStructureSql();
20
	    			$this->chargerStructureSql();
23
	    			break;
21
	    			break;
24
				case 'chargerDonnees' :
22
				case 'chargerDonnees' :
25
		    		$this->chargerDonnees('especes');
23
		    		$this->chargerDonnees('especes');
26
		    		$this->chargerDonnees('lois');
-
 
27
		    		$this-> ajouterChamps();
-
 
28
		    		$this->genererChampNumNomRetenu();
24
		    		$this->genererChampNumNomRetenu();
29
					break;
25
					break;
30
				case 'genererChampNumNomRetenu' :
26
				case 'genererChampNumNomRetenu' :
31
		    		$this-> ajouterChamps();
-
 
32
					$this->genererChampNumNomRetenu();
27
					$this->genererChampNumNomRetenu();
33
					break;
28
					break;
34
				case 'supprimerTous' :
29
				case 'supprimerTous' :
35
					$this->supprimerTous();
30
					$this->supprimerTous();
36
					break;
31
					break;
37
				default :
32
				default :
38
					throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
33
					throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
39
			}
34
			}
40
		} catch (Exception $e) {
35
		} catch (Exception $e) {
41
			$this->traiterErreur($e->getMessage());
36
			$this->traiterErreur($e->getMessage());
42
		}
37
		}
43
    }
38
    }
44
 
39
 
45
	protected function chargerDonnees($type) {
40
	protected function chargerDonnees($type) {
46
		$chemin = Config::get('chemins.'.$type);
41
		$chemin = Config::get('chemins.'.$type);
47
		$table = Config::get('tables.'.$type);
42
		$table = Config::get('tables.'.$type);
48
		$requete = "LOAD DATA INFILE '$chemin' ".
43
		$requete = "LOAD DATA INFILE '$chemin' ".
49
			"REPLACE INTO TABLE $table ".
44
			"REPLACE INTO TABLE $table ".
50
			'CHARACTER SET utf8 '.
45
			'CHARACTER SET utf8 '.
51
			'FIELDS '.
46
			'FIELDS '.
52
			"	TERMINATED BY '\t' ".
47
			"	TERMINATED BY '\t' ".
53
			"	ENCLOSED BY '' ".
48
			"	ENCLOSED BY '' ".
54
			"	ESCAPED BY '\\\' ".
49
			"	ESCAPED BY '\\\' ".
55
			'IGNORE 1 LINES';
50
			'IGNORE 1 LINES';
56
		$this->getBdd()->requeter($requete);
51
		$this->getBdd()->requeter($requete);
57
	}
52
	}
58
	
53
	
59
	private function genererChampNumNomRetenu() {
54
	private function genererChampNumNomRetenu() {
60
		$this->preparerTablePrChpNumNomRetenu();
55
		$this->preparerTablePrChpNumNomRetenu();
61
		$this->genererNumNomRetenu();
56
		$this->genererNumNomRetenu();
62
	}
57
	}
63
	
58
	
64
	private function preparerTablePrChpNumNomRetenu() {
59
	private function preparerTablePrChpNumNomRetenu() {
65
		$table = Config::get('tables.especes');
60
		$table = Config::get('tables.especes');
66
		$requete = "SHOW COLUMNS FROM $table LIKE 'num_nom_retenu' ";
61
		$requete = "SHOW COLUMNS FROM $table LIKE 'num_nom_retenu' ";
67
		$resultat = $this->getBdd()->recuperer($requete);
62
		$resultat = $this->getBdd()->recuperer($requete);
68
		if ($resultat === false) {
63
		if ($resultat === false) {
69
			$requete = 	"ALTER TABLE $table ".
64
			$requete = 	"ALTER TABLE $table ".
70
					'ADD num_nom_retenu INT(10) '.
65
					'ADD num_nom_retenu INT(10) '.
71
					'NULL DEFAULT NULL AFTER num_nom';
66
					'NULL DEFAULT NULL AFTER num_nom';
72
			$this->getBdd()->requeter($requete);
67
			$this->getBdd()->requeter($requete);
73
		}
68
		}
74
	}
69
	}
75
	private function ajouterChamps() {
-
 
76
		$table = Config::get('tables.especes');
-
 
77
		
-
 
78
		$requete = 'ALTER TABLE '.$table.' ADD `num_nom` INT( 10 ) NOT NULL ,
-
 
79
					ADD `num_nom_retenu` INT( 10 ) NOT NULL ,
-
 
80
					ADD `nom_sci` VARCHAR( 70 ) NOT NULL ';
-
 
81
		$this->getBdd()->requeter($requete);
-
 
82
	}
-
 
83
	
70
	
84
	private function genererNumNomRetenu() {
71
	private function genererNumNomRetenu() {
85
		$table = Config::get('tables.especes');
72
		$table = Config::get('tables.especes');
86
		$table_referentiel = Config::get('tables.referentielTaxo');
73
		$table_referentiel = Config::get('tables.referentielTaxo');
87
		
74
		
88
		$requete = 'UPDATE '.$table.' s, '.$table_referentiel.' r '.
75
		$requete = 'UPDATE '.$table.' s, '.$table_referentiel.' r '.
89
		           'SET s.num_nom_retenu = r.num_nom_retenu, s.num_nom = r.num_nom, s.nom_sci = r.nom_sci '.
76
		  		'SET s.num_nom_retenu = r.num_nom '.
90
		           '	WHERE s.cd_nom = r.cd_nom ';
77
		  		'WHERE s.cd_nom = r.cd_nom ';
91
		
78
		
92
		$this->getBdd()->requeter($requete);
79
		$this->getBdd()->requeter($requete);
93
	}
80
	}
94
 
81
 
95
	private function supprimerTous() {
82
	private function supprimerTous() {
96
		$requete = "DROP TABLE IF EXISTS sptb_meta, sptb_especes_v2012, sptb_lois_v2012";
83
		$requete = "DROP TABLE IF EXISTS sptb_meta, sptb_especes_v2012, sptb_lois_v2012";
97
		$this->getBdd()->requeter($requete);
84
		$this->getBdd()->requeter($requete);
98
		Debug::printr('suppression');
85
		Debug::printr('suppression');
99
	}
86
	}
100
}
87
}
101
?>
88
?>