Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1500 delphine 1
<?php
2
class Dao extends Bdd {
1520 aurelien 3
 
4
	private $temps_derniere_requete = 0;
5
 
1500 delphine 6
	public function rechercherCoordonnees() {
7
		$requete = "SELECT longitude, latitude
8
					FROM `cel_obs`
9
					GROUP BY `longitude` , `latitude`";
10
		$resultat = $this->recupererTous($requete);
1520 aurelien 11
		$this->reinitialiserTempsDerniereRequete();
1500 delphine 12
		return $resultat;
13
	}
14
 
1517 aurelien 15
	public function rechercherCoordonneesSansCorrespondances() {
16
		$requete = "SELECT longitude, latitude
17
						FROM `cel_obs`
1520 aurelien 18
						WHERE code_insee_calcule = ''
1517 aurelien 19
						GROUP BY `longitude` , `latitude`";
20
		$resultat = $this->recupererTous($requete);
1520 aurelien 21
		$this->reinitialiserTempsDerniereRequete();
1517 aurelien 22
		return $resultat;
23
	}
24
 
1500 delphine 25
	public function creerColonneCodeInseeCalculee() {
26
		$create = "ALTER TABLE `cel_obs` ADD `code_insee_calcule` VARCHAR( 5 ) NOT NULL";
27
		$this->requeter($create);
1520 aurelien 28
		$this->reinitialiserTempsDerniereRequete();
1500 delphine 29
	}
30
 
31
	public function ajouterCodeInseeCalculee($latitude, $longitude, $code_insee) {
32
		$insert = "UPDATE `cel_obs` SET `code_insee_calcule` = '$code_insee' ".
1517 aurelien 33
					"WHERE latitude = $latitude AND longitude = $longitude";
1500 delphine 34
		$this->requeter($insert);
1520 aurelien 35
		$this->reinitialiserTempsDerniereRequete();
1500 delphine 36
	}
37
 
38
	public function modifierCodeInsee() {
1517 aurelien 39
		$update = "UPDATE `cel_obs` SET `ce_zone_geo` = concat('INSEE-C:' , `code_insee_calcule`) ".
40
						"WHERE  ce_zone_geo = '' ";
1500 delphine 41
		$this->requeter($update);
1520 aurelien 42
		$this->reinitialiserTempsDerniereRequete();
1500 delphine 43
	}
1520 aurelien 44
 
45
	// 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
47
	// aucun département). Pour éviter cela on teste régulièrement la connection
48
	public function testerActiviteConnection() {
49
		$temps_courant = microtime(true);
50
		$temps_depuis_derniere_requete = $temps_courant - $this->temps_derniere_requete;
51
		if($temps_depuis_derniere_requete >= 18) {
52
			$this->ping();
53
			$this->reinitialiserTempsDerniereRequete();
54
		}
55
	}
56
 
57
	private function reinitialiserTempsDerniereRequete() {
58
		$this->temps_derniere_requete = microtime(true);
59
	}
1500 delphine 60
}
61
?>