Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 891 Rev 905
1
<?php
1
<?php
2
/**
2
/**
3
*
3
*
4
* @author Mathilde SALTHUN-LASSALLE <mathilde@tela-botanica.org>
4
* @author Mathilde SALTHUN-LASSALLE <mathilde@tela-botanica.org>
5
*
5
*
6
*
6
*
7
*/
7
*/
8
class BaseflorIndex {
8
class BaseflorIndex {
9
	
9
	
10
	private $conteneur;
10
	private $conteneur;
11
	private $efloreCommun;
11
	private $efloreCommun;
12
	private $message;
12
	private $message;
13
	private $dossierBase;
13
	private $dossierBase;
14
	private $valeurs_insertion = array();
14
	private $valeurs_insertion = array();
15
	private $Bdd;
15
	private $Bdd;
16
	
16
	
17
	public function __construct(Conteneur $conteneur, Bdd $Bdd) {
17
	public function __construct(Conteneur $conteneur, Bdd $Bdd) {
18
		$this->conteneur = $conteneur;
18
		$this->conteneur = $conteneur;
19
		$this->Bdd = $Bdd;
19
		$this->Bdd = $Bdd;
20
		$this->efloreCommun = $conteneur->getEfloreCommun();
20
		$this->efloreCommun = $conteneur->getEfloreCommun();
21
		$this->message = $conteneur->getMessages();
21
		$this->message = $conteneur->getMessages();
22
		$this->dossierBase = dirname(__FILE__).'/';
22
		$this->dossierBase = dirname(__FILE__).'/';
23
	}
23
	}
24
	
24
	
25
	
25
	
26
	public function insererDonnees(){
26
	public function insererDonnees(){
27
		$this->efloreCommun->chargerFichierSql('chemins.index_sql');
27
		$this->efloreCommun->chargerFichierSql('chemins.index_sql');
28
		$this->recupererDonneesBaseflor();
28
		$this->recupererDonneesBaseflor();
29
		$this->recupererDonneesRangSup();
29
		$this->recupererDonneesRangSup();
30
		$this->insererDonneesIndex();
30
		$this->insererDonneesIndex();
31
	}
31
	}
32
	
32
	
33
	private function recupererDonneesBaseflor() {
33
	private function recupererDonneesBaseflor() {
34
		$table = Config::get('tables.donnees');
34
		$table = Config::get('tables.donnees');
35
		$requete = "SELECT cle, num_nomen, BDNT FROM $table ;";
35
		$requete = "SELECT cle, num_nomen, BDNT FROM $table WHERE num_nomen != 0 ".
-
 
36
			"	AND num_nomen != 0 ".
-
 
37
			"	AND !(ve_lumiere = '' and ve_mat_org_sol = '' and ve_temperature = '' and ve_continentalite = '' ".
-
 
38
			"	and ve_humidite_atmos = ''  and ve_humidite_edaph = '' and ve_nutriments_sol = '' and ve_salinite = ''".
-
 
39
			"	and ve_texture_sol = '' and ve_reaction_sol = '')";
36
		$resultat = $this->Bdd->recupererTous($requete);
40
		$resultat = $this->Bdd->recupererTous($requete);
37
		$this->valeurs_insertion['baseflor'] = $resultat;
41
		$this->valeurs_insertion['baseflor'] = $resultat;
38
		$this->valeurs_insertion['rangSup'] = $resultat;
42
		$this->valeurs_insertion['rangSup'] = $resultat;
39
	}
43
	}
40
	
44
	
41
	private function recupererDonneesRangSup() {
45
	private function recupererDonneesRangSup() {
42
		$table = Config::get('tables.rang_sup');
46
		$table = Config::get('tables.rang_sup');
43
		$requete = "SELECT cle, num_nomen, bdnt FROM $table ;";
47
		$requete = "SELECT cle, num_nomen, bdnt FROM $table ;";
44
		$resultat = $this->Bdd->recupererTous($requete);
48
		$resultat = $this->Bdd->recupererTous($requete);
45
		$this->valeurs_insertion['rangSup']= $resultat;
49
		$this->valeurs_insertion['rangSup']= $resultat;
46
 
50
 
47
	}
51
	}
-
 
52
 
48
	
53
	
49
	private function insererDonneesIndex() {
54
	private function insererDonneesIndex() {
50
		$table = Config::get('tables.index');
55
		$table = Config::get('tables.index');
51
		$requete_truncate = 'TRUNCATE TABLE '.$table;
56
		$requete_truncate = 'TRUNCATE TABLE '.$table;
52
		$this->Bdd->requeter($requete_truncate);
57
		$this->Bdd->requeter($requete_truncate);
53
		$i = 0;
58
		$i = 0;
54
		foreach ($this->valeurs_insertion as $tab => $res){
59
		foreach ($this->valeurs_insertion as $tab => $res){
55
			if ($tab == 'baseflor') {
60
			if ($tab == 'baseflor') {
56
				foreach ($res as  $valeurs ) {
61
				foreach ($res as  $valeurs ) {
-
 
62
					if ($valeurs['num_nomen'] != 0) {
57
					$requete = "INSERT INTO $table VALUES({$i},{$valeurs['cle']},null,'".strtolower($valeurs['BDNT']).".nn:{$valeurs['num_nomen']}')";
63
						$requete = "INSERT INTO $table VALUES({$i},{$valeurs['cle']},null,'".strtolower($valeurs['BDNT']).".nn:{$valeurs['num_nomen']}')";
58
					$this->Bdd->requeter($requete);
64
						$this->Bdd->requeter($requete);
59
					$i++;
65
						$i++;
60
					$this->message->afficherAvancement('Insertion des valeurs issues de baseflor en cours');
66
						$this->message->afficherAvancement('Insertion des valeurs issues de baseflor en cours');
-
 
67
					}
61
				}
68
				}
62
			} else {
69
			} else {
63
				foreach ($res as  $valeurs ) {
70
				foreach ($res as  $valeurs ) {
-
 
71
					if ($valeurs['num_nomen'] != 0) {
64
					$requete = "INSERT INTO $table VALUES({$i},null,{$valeurs['cle']},'{$valeurs['bdnt']}.nn{$valeurs['num_nomen']}')";
72
						$requete = "INSERT INTO $table VALUES({$i},null,{$valeurs['cle']},'{$valeurs['bdnt']}.nn:{$valeurs['num_nomen']}')";
65
					$this->Bdd->requeter($requete);
73
						$this->Bdd->requeter($requete);
66
					$i++;
74
						$i++;
67
					$this->message->afficherAvancement('Insertion des valeurs issues des rangs supérieurs en cours');
75
						$this->message->afficherAvancement('Insertion des valeurs issues des rangs supérieurs en cours');
-
 
76
					}
68
				}
77
				}
69
			}
78
			}
70
		}
79
		}
71
	}
80
	}
72
	
81
	
73
}
82
}
74
?>
83
?>