Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 130 | Rev 336 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 130 Rev 335
Line 42... Line 42...
42
					$this->chargerBdtfx();
42
					$this->chargerBdtfx();
43
					break;
43
					break;
44
				case 'genererNomSciHtml' :
44
				case 'genererNomSciHtml' :
45
					$this->genererNomSciHtml();
45
					$this->genererNomSciHtml();
46
					break;
46
					break;
-
 
47
				case 'genererChpFamille' :
-
 
48
					$this->genererChpFamille();
-
 
49
					break;
47
				case 'genererDonneesTestMultiVersion' :
50
				case 'genererDonneesTestMultiVersion' :
48
					$this->genererDonneesTestMultiVersion();
51
					$this->genererDonneesTestMultiVersion();
49
					break;
52
					break;
50
				case 'supprimerDonneesTestMultiVersion' :
53
				case 'supprimerDonneesTestMultiVersion' :
51
					$this->supprimerDonneesTestMultiVersion();
54
					$this->supprimerDonneesTestMultiVersion();
Line 74... Line 77...
74
				'IGNORE 1 LINES';
77
				'IGNORE 1 LINES';
75
		$this->getBdd()->requeter($requete);
78
		$this->getBdd()->requeter($requete);
76
	}
79
	}
Line 77... Line 80...
77
 
80
 
78
	private function genererNomSciHtml() {
81
	private function genererNomSciHtml() {
79
		$this->initialiserGenerationNomsSciHtml();
82
		$this->initialiserGenerationChamps();
80
		$this->preparerTable();
83
		$this->preparerTablePrChpNomSciHtml();
81
		$generateur = new GenerateurNomSciHtml();
84
		$generateur = new GenerateurNomSciHtml();
-
 
85
		$nbreTotal = $this->recupererNbTotalTuples();
82
		$nbreTotal = $this->recupererNbTotalTuples();
86
		$this->departInsertion = 0;
83
		while ($this->departInsertion < $nbreTotal) {
87
		while ($this->departInsertion < $nbreTotal) {
84
			$resultat = $this->recupererTuples();
88
			$resultat = $this->recupererTuples();
85
			$nomsSciEnHtml = $generateur->generer($resultat);
89
			$nomsSciEnHtml = $generateur->generer($resultat);
86
			$this->lancerRequeteModification($nomsSciEnHtml);
90
			$this->lancerRequeteModification($nomsSciEnHtml);
Line 89... Line 93...
89
			if ($this->stopperLaBoucle($this->getParametre('t'))) break;
93
			if ($this->stopperLaBoucle($this->getParametre('t'))) break;
90
		}
94
		}
91
		echo "\n";
95
		echo "\n";
92
	}
96
	}
Line 93... Line 97...
93
 
97
 
94
	private function initialiserGenerationNomsSciHtml() {
98
	private function initialiserGenerationChamps() {
95
		$this->table = Config::get('tables.bdtfx');
99
		$this->table = Config::get('tables.bdtfx');
Line 96... Line 100...
96
	}
100
	}
97
 
101
 
98
	private function preparerTable() {
102
	private function preparerTablePrChpNomSciHtml() {
99
		$requete = "SHOW COLUMNS FROM {$this->table} LIKE 'nom_sci_html' ";
103
		$requete = "SHOW COLUMNS FROM {$this->table} LIKE 'nom_sci_html' ";
100
		$resultat = $this->getBdd()->recuperer($requete);
104
		$resultat = $this->getBdd()->recuperer($requete);
101
		if ($resultat === false) {
105
		if ($resultat === false) {
102
			$requete = 	"ALTER TABLE {$this->table} ".
106
			$requete = 	"ALTER TABLE {$this->table} ".
103
							'ADD nom_sci_html VARCHAR( 500 ) '.
107
				'ADD nom_sci_html VARCHAR( 500 ) '.
104
							'CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ';
108
				'CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ';
105
			$this->getBdd()->requeter($requete);
109
			$this->getBdd()->requeter($requete);
Line 106... Line 110...
106
		}
110
		}
Line 112... Line 116...
112
		return $resultat['nb'];
116
		return $resultat['nb'];
113
	}
117
	}
Line 114... Line 118...
114
 
118
 
115
	private function recupererTuples() {
119
	private function recupererTuples() {
116
		$requete = 'SELECT 	num_nom, rang, nom_supra_generique, genre, epithete_infra_generique, '.
120
		$requete = 'SELECT 	num_nom, rang, nom_supra_generique, genre, epithete_infra_generique, '.
117
					'	epithete_sp, type_epithete, epithete_infra_sp,cultivar_groupe, '.
121
			'	epithete_sp, type_epithete, epithete_infra_sp,cultivar_groupe, '.
118
					'	nom_commercial, cultivar '.
122
			'	nom_commercial, cultivar '.
119
					"FROM {$this->table} ".
123
			"FROM {$this->table} ".
120
					"LIMIT {$this->departInsertion},{$this->pasInsertion} ";
124
			"LIMIT {$this->departInsertion},{$this->pasInsertion} ";
121
		$resultat = $this->getBdd()->recupererTous($requete);
125
		$resultat = $this->getBdd()->recupererTous($requete);
122
		return $resultat;
126
		return $resultat;
Line 123... Line 127...
123
	}
127
	}
Line 132... Line 136...
132
			if ($resultat === false) {
136
			if ($resultat === false) {
133
				throw new Exception("Erreur d'insertion pour le tuple $id");
137
				throw new Exception("Erreur d'insertion pour le tuple $id");
134
			}
138
			}
135
		}
139
		}
136
	}
140
	}
-
 
141
	
-
 
142
	private function genererChpFamille() {
-
 
143
		$this->initialiserGenerationChamps();
-
 
144
		$this->preparerTablePrChpFamille();
-
 
145
		$generateur = new GenerateurNomSciHtml();
-
 
146
		$resultats = $this->recupererTuples();
-
 
147
		$classif = array();
-
 
148
		foreach ($resultats as $nom) {
-
 
149
			if ($nom['rang'])
-
 
150
			$this->afficherAvancement("Insertion des noms de famille dans la base par paquet de {$this->pasInsertion} en cours");
-
 
151
			if ($this->stopperLaBoucle($this->getParametre('t'))) break;
-
 
152
		}
-
 
153
	}
-
 
154
	
-
 
155
	private function preparerTablePrChpFamille() {
-
 
156
		$requete = "SHOW COLUMNS FROM {$this->table} LIKE 'famille' ";
-
 
157
		$resultat = $this->getBdd()->recuperer($requete);
-
 
158
		if ($resultat === false) {
-
 
159
			$requete = 	"ALTER TABLE {$this->table} ".
-
 
160
				'ADD famille VARCHAR(255) '.
-
 
161
				'CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ';
-
 
162
			$this->getBdd()->requeter($requete);
-
 
163
		}
-
 
164
	}
-
 
165
	
-
 
166
	private function recupererTuplesPrChpFamille() {
-
 
167
		$requete = 'SELECT num_nom, num_tax_sup, rang, nom_sci '.
-
 
168
				"FROM {$this->table} ".
-
 
169
				"WHERE rang >= 180 ".
-
 
170
				"ORDER BY rang ASC,num_tax_sup ASC ";
-
 
171
		$resultat = $this->getBdd()->recupererTous($requete);
-
 
172
		return $resultat;
-
 
173
	}
Line 137... Line 174...
137
 
174
 
138
	private function genererDonneesTestMultiVersion() {
175
	private function genererDonneesTestMultiVersion() {
139
		$contenuSql = $this->recupererContenu(Config::get('chemins.structureSqlTest'));
176
		$contenuSql = $this->recupererContenu(Config::get('chemins.structureSqlTest'));