Rev 1518 | Blame | Last modification | View Log | RSS feed
<?php
class Dao extends Bdd {
private $temps_derniere_requete = 0;
public function rechercherCoordonnees() {
$requete = "SELECT longitude, latitude
FROM `cel_obs`
GROUP BY `longitude` , `latitude`";
$resultat = $this->recupererTous($requete);
$this->reinitialiserTempsDerniereRequete();
return $resultat;
}
public function rechercherCoordonneesSansCorrespondances() {
$requete = "SELECT longitude, latitude
FROM `cel_obs`
WHERE code_insee_calcule = ''
GROUP BY `longitude` , `latitude`";
$resultat = $this->recupererTous($requete);
$this->reinitialiserTempsDerniereRequete();
return $resultat;
}
public function creerColonneCodeInseeCalculee() {
$create = "ALTER TABLE `cel_obs` ADD `code_insee_calcule` VARCHAR( 5 ) NOT NULL";
$this->requeter($create);
$this->reinitialiserTempsDerniereRequete();
}
public function ajouterCodeInseeCalculee($latitude, $longitude, $code_insee) {
$insert = "UPDATE `cel_obs` SET `code_insee_calcule` = '$code_insee' ".
"WHERE latitude = $latitude AND longitude = $longitude";
$this->requeter($insert);
$this->reinitialiserTempsDerniereRequete();
}
public function modifierCodeInsee() {
$update = "UPDATE `cel_obs` SET `ce_zone_geo` = concat('INSEE-C:' , `code_insee_calcule`) ".
"WHERE ce_zone_geo = '' ";
$this->requeter($update);
$this->reinitialiserTempsDerniereRequete();
}
// Il peut se passer assez de temps sans qu'aucune requete ne soit effectuée
// (cas d'un grand nombre d'enregistrements à la suite pour lesquels on ne trouve
// aucun département). Pour éviter cela on teste régulièrement la connection
public function testerActiviteConnection() {
$temps_courant = microtime(true);
$temps_depuis_derniere_requete = $temps_courant - $this->temps_derniere_requete;
if($temps_depuis_derniere_requete >= 18) {
$this->ping();
$this->reinitialiserTempsDerniereRequete();
}
}
private function reinitialiserTempsDerniereRequete() {
$this->temps_derniere_requete = microtime(true);
}
}
?>