Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2414 Rev 2436
Line 1... Line 1...
1
<?php
1
<?php
2
class Dao extends Bdd {
2
class Dao extends Bdd {
3
	
3
 
4
	private $temps_derniere_requete = 0;
4
	private $temps_derniere_requete = 0;
5
	
5
 
6
	public function rechercherCoordonnees() {
6
	public function rechercherCoordonnees() {
7
		$requete = "SELECT longitude, latitude ".
7
		$requete = "SELECT longitude, latitude ".
8
			"FROM cel_obs ".
8
			"FROM cel_obs ".
9
			"GROUP BY longitude , latitude ";
9
			"GROUP BY longitude , latitude ";
10
		$resultat = $this->recupererTous($requete);
10
		$resultat = $this->recupererTous($requete);
11
		$this->reinitialiserTempsDerniereRequete();
11
		$this->reinitialiserTempsDerniereRequete();
12
		return $resultat;
12
		return $resultat;
13
	}
13
	}
14
	
14
 
15
	public function rechercherCoordonneesSansCorrespondances() {
15
	public function rechercherCoordonneesSansCorrespondances() {
16
		$requete = 'SELECT longitude, latitude '.
16
		$requete = 'SELECT longitude, latitude '.
17
			'FROM cel_obs '.
17
			'FROM cel_obs '.
18
			"WHERE code_insee_calcule = '' ".
18
			"WHERE code_insee_calcule = '' ".
19
			'	AND DATE_ADD(date_modification, INTERVAL 25 HOUR) >= CURDATE() '. 
19
			'	AND DATE_ADD(date_modification, INTERVAL 25 HOUR) >= CURDATE() '.
20
			'GROUP BY longitude , latitude ';
20
			'GROUP BY longitude , latitude ';
21
		$resultat = $this->recupererTous($requete);
21
		$resultat = $this->recupererTous($requete);
22
		$this->reinitialiserTempsDerniereRequete();
22
		$this->reinitialiserTempsDerniereRequete();
23
		return $resultat;
23
		return $resultat;
24
	}
24
	}
25
	
25
 
26
	public function creerColonneCodeInseeCalcule() {
26
	public function creerColonneCodeInseeCalcule() {
27
		$create = 'ALTER TABLE cel_obs '.
27
		$create = 'ALTER TABLE cel_obs '.
28
			'ADD code_insee_calcule VARCHAR(5) NOT NULL ';
28
			'ADD code_insee_calcule VARCHAR(5) NOT NULL ';
29
		$this->requeter($create);
29
		$this->requeter($create);
30
		$this->reinitialiserTempsDerniereRequete();
30
		$this->reinitialiserTempsDerniereRequete();
31
	}
31
	}
32
	
32
 
33
	public function ajouterCodeInseeCalcule($latitude, $longitude, $code_insee) {
33
	public function ajouterCodeInseeCalcule($latitude, $longitude, $code_insee) {
34
		$insert = 'UPDATE cel_obs '.
34
		$insert = 'UPDATE cel_obs '.
35
			"SET code_insee_calcule = ".$this->proteger($code_insee)." ".
35
			"SET code_insee_calcule = ".$this->proteger($code_insee)." ".
36
			"WHERE latitude = ".$this->proteger($latitude)." ".
36
			"WHERE latitude = ".$this->proteger($latitude)." ".
37
			"	AND longitude = ".$this->proteger($longitude)." ";
37
			"	AND longitude = ".$this->proteger($longitude)." ";
38
		$this->requeter($insert);
38
		$this->requeter($insert);
39
		$this->reinitialiserTempsDerniereRequete();
39
		$this->reinitialiserTempsDerniereRequete();
40
	}
40
	}
41
	
41
 
42
	public function modifierCodeInseeEtZoneGeo($coordonnees) {
42
	public function modifierCodeInseeEtZoneGeo($coordonnees) {
43
		$update = "UPDATE cel_obs ".
43
		$update = "UPDATE cel_obs ".
44
			"SET ce_zone_geo = concat('INSEE-C:' , code_insee_calcule), ".
44
			"SET ce_zone_geo = CONCAT('INSEE-C:' , code_insee_calcule), ".
45
		    	"zone_geo = ".$this->proteger($coordonnees['nom'])." ".
45
		    	"zone_geo = ".$this->proteger($coordonnees['nom'])." ".
46
			"WHERE ce_zone_geo = '' AND zone_geo = '' ".
46
			"WHERE ce_zone_geo = '' AND zone_geo = '' ".
47
			"	AND latitude = ".$this->proteger($coordonnees['latitude'])." ".
47
			"	AND latitude = ".$this->proteger($coordonnees['latitude'])." ".
48
			"	AND longitude = ".$this->proteger($coordonnees['longitude'])." ";
48
			"	AND longitude = ".$this->proteger($coordonnees['longitude'])." ";
49
		$this->requeter($update);
49
		$this->requeter($update);
50
		$this->reinitialiserTempsDerniereRequete();
50
		$this->reinitialiserTempsDerniereRequete();
51
	}
51
	}
52
	
52
 
53
	// Il peut se passer assez de temps sans qu'aucune requete ne soit effectuée
53
	// Il peut se passer assez de temps sans qu'aucune requete ne soit effectuée
54
	// (cas d'un grand nombre d'enregistrements à la suite pour lesquels on ne trouve
54
	// (cas d'un grand nombre d'enregistrements à la suite pour lesquels on ne trouve
55
	// aucun département). Pour éviter cela on teste régulièrement la connection
55
	// aucun département). Pour éviter cela on teste régulièrement la connection
56
	public function testerActiviteConnection() {
56
	public function testerActiviteConnection() {
57
		$temps_courant = microtime(true);
57
		$temps_courant = microtime(true);
Line 59... Line 59...
59
		if($temps_depuis_derniere_requete >= 18) {
59
		if($temps_depuis_derniere_requete >= 18) {
60
			$this->ping();
60
			$this->ping();
61
			$this->reinitialiserTempsDerniereRequete();
61
			$this->reinitialiserTempsDerniereRequete();
62
		}
62
		}
63
	}
63
	}
64
	
64
 
65
	private function reinitialiserTempsDerniereRequete() {
65
	private function reinitialiserTempsDerniereRequete() {
66
		$this->temps_derniere_requete = microtime(true);
66
		$this->temps_derniere_requete = microtime(true);
67
	}
67
	}
68
}
-
 
69
?>
-
 
70
68
}
-
 
69
71
70