Subversion Repositories eFlore/Applications.cel

Rev

Rev 1520 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1520 Rev 1523
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
						GROUP BY `longitude` , `latitude`";
20
			'GROUP BY longitude , latitude ';
20
		$resultat = $this->recupererTous($requete);
21
		$resultat = $this->recupererTous($requete);
21
		$this->reinitialiserTempsDerniereRequete();
22
		$this->reinitialiserTempsDerniereRequete();
22
		return $resultat;
23
		return $resultat;
23
	}
24
	}
24
	
25
	
-
 
26
	public function creerColonneCodeInseeCalcule() {
25
	public function creerColonneCodeInseeCalculee() {
27
		$create = 'ALTER TABLE cel_obs '.
26
		$create = "ALTER TABLE `cel_obs` ADD `code_insee_calcule` VARCHAR( 5 ) NOT NULL";
28
			'ADD code_insee_calcule VARCHAR(5) NOT NULL ';
27
		$this->requeter($create);
29
		$this->requeter($create);
28
		$this->reinitialiserTempsDerniereRequete();
30
		$this->reinitialiserTempsDerniereRequete();
29
	}
31
	}
30
	
32
	
-
 
33
	public function ajouterCodeInseeCalcule($latitude, $longitude, $code_insee) {
31
	public function ajouterCodeInseeCalculee($latitude, $longitude, $code_insee) {
34
		$insert = 'UPDATE cel_obs '.
32
		$insert = "UPDATE `cel_obs` SET `code_insee_calcule` = '$code_insee' ".
35
			"SET code_insee_calcule = ".$this->proteger($code_insee)." ".
-
 
36
			"WHERE latitude = ".$this->proteger($latitude)." ".
33
					"WHERE latitude = $latitude AND longitude = $longitude";
37
			"	AND longitude = ".$this->proteger($longitude)." ";
34
		$this->requeter($insert);
38
		$this->requeter($insert);
35
		$this->reinitialiserTempsDerniereRequete();
39
		$this->reinitialiserTempsDerniereRequete();
36
	}
40
	}
37
	
41
	
-
 
42
	public function modifierCodeInseeEtZoneGeo($coordonnees) {
38
	public function modifierCodeInsee() {
43
		$update = "UPDATE cel_obs ".
-
 
44
			"SET ce_zone_geo = concat('INSEE-C:' , code_insee_calcule), ".
39
		$update = "UPDATE `cel_obs` SET `ce_zone_geo` = concat('INSEE-C:' , `code_insee_calcule`) ".
45
		    	"zone_geo = ".$this->proteger($coordonnees['nom'])." ".
-
 
46
			"WHERE ce_zone_geo = '' AND zone_geo = '' ".
-
 
47
			"	AND latitude = ".$this->proteger($coordonnees['latitude'])." ".
40
						"WHERE  ce_zone_geo = '' ";
48
			"	AND longitude = ".$this->proteger($coordonnees['longitude'])." ";
41
		$this->requeter($update);
49
		$this->requeter($update);
42
		$this->reinitialiserTempsDerniereRequete();
50
		$this->reinitialiserTempsDerniereRequete();
43
	}
51
	}
44
	
52
	
45
	// 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
46
	// (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
47
	// 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
48
	public function testerActiviteConnection() {
56
	public function testerActiviteConnection() {
49
		$temps_courant = microtime(true);
57
		$temps_courant = microtime(true);
50
		$temps_depuis_derniere_requete = $temps_courant - $this->temps_derniere_requete;
58
		$temps_depuis_derniere_requete = $temps_courant - $this->temps_derniere_requete;
51
		if($temps_depuis_derniere_requete >= 18) {
59
		if($temps_depuis_derniere_requete >= 18) {
52
			$this->ping();
60
			$this->ping();
53
			$this->reinitialiserTempsDerniereRequete();
61
			$this->reinitialiserTempsDerniereRequete();
54
		}
62
		}
55
	}
63
	}
56
	
64
	
57
	private function reinitialiserTempsDerniereRequete() {
65
	private function reinitialiserTempsDerniereRequete() {
58
		$this->temps_derniere_requete = microtime(true);
66
		$this->temps_derniere_requete = microtime(true);
59
	}
67
	}
60
}
68
}
61
?>
69
?>