Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2014 Rev 2017
1
<?php
1
<?php
2
class Dao extends Bdd {
2
class Dao extends Bdd {
3
 
3
 
4
	public function obtenirNbObservationsSauvages() {
4
	public function obtenirNbObservationsSauvages() {
5
		$requete = 'SELECT COUNT(*) AS nb '.
5
		$requete = 'SELECT COUNT(*) AS nb '.
6
			'FROM cel_obs '.
6
			'FROM cel_obs '.
7
			'WHERE mots_cles_texte LIKE "%sauvages%" '.
7
			'WHERE mots_cles_texte LIKE "%sauvages%" '.
8
			'	AND mots_cles_texte LIKE "%Projets coopératifs%" '.
8
			'	AND mots_cles_texte LIKE "%Projets coopératifs%" '.
-
 
9
			'	AND mots_cles_texte NOT LIKE "%florileges%" '.
9
			' -- '.__FILE__.' '.__LINE__;
10
			' -- '.__FILE__.' '.__LINE__;
10
 
11
 
11
		$resultat = $this->recuperer($requete);
12
		$resultat = $this->recuperer($requete);
12
		return $resultat['nb'];
13
		return $resultat['nb'];
13
	}
14
	}
14
 
15
 
15
	public function obtenirObservationsSauvages($debut, $limite) {
16
	public function obtenirObservationsSauvages($debut, $limite) {
16
		$requete = 'SELECT * '.
17
		$requete = 'SELECT * '.
17
			'FROM cel_obs '.
18
			'FROM cel_obs '.
18
			'WHERE mots_cles_texte LIKE "%sauvages%" '.
19
			'WHERE mots_cles_texte LIKE "%sauvages%" '.
19
			'	AND mots_cles_texte LIKE "%Projets coopératifs%" '.
20
			'	AND mots_cles_texte LIKE "%Projets coopératifs%" '.
-
 
21
			'	AND mots_cles_texte NOT LIKE "%florileges%" '.
20
			"LIMIT $debut, $limite ".
22
			"LIMIT $debut, $limite ".
21
			' -- '.__FILE__.' '.__LINE__;
23
			' -- '.__FILE__.' '.__LINE__;
22
 
24
 
23
		$resultat = $this->recupererTous($requete);
25
		$resultat = $this->recupererTous($requete);
24
		return $resultat;
26
		return $resultat;
25
	}
27
	}
26
 
28
 
27
	public function ajouterChampsEtendusParLots($obs_a_champs_etendus) {
29
	public function ajouterChampsEtendusParLots($obs_a_champs_etendus) {
28
		$lignes = array();
30
		$lignes = array();
29
 
31
 
30
		foreach ($obs_a_champs_etendus as $champs_etendus_obs) {
32
		foreach ($obs_a_champs_etendus as $champs_etendus_obs) {
31
			foreach ($champs_etendus_obs as $champ_etendu) {
33
			foreach ($champs_etendus_obs as $champ_etendu) {
32
				$id = $this->proteger($champ_etendu['id_observation']);
34
				$id = $this->proteger($champ_etendu['id_observation']);
33
				$cle = $this->proteger($champ_etendu['cle']);
35
				$cle = $this->proteger($champ_etendu['cle']);
34
				$label = $this->proteger($champ_etendu['label']);
36
				$label = $this->proteger($champ_etendu['label']);
35
				$valeur = $this->proteger($champ_etendu['valeur']);
37
				$valeur = $this->proteger($champ_etendu['valeur']);
36
				$lignes[] = "($id, $cle, $label, $valeur)";
38
				$lignes[] = "($id, $cle, $label, $valeur)";
37
			}
39
			}
38
		}
40
		}
39
 
41
 
40
		$requete = "INSERT INTO cel_obs_etendues (id_observation, cle, label, valeur) ".
42
		$requete = "INSERT INTO cel_obs_etendues (id_observation, cle, label, valeur) ".
41
			'VALUES '.implode(',', $lignes).' '.
43
			'VALUES '.implode(',', $lignes).' '.
42
			'ON DUPLICATE KEY UPDATE valeur = VALUES(valeur) '.
44
			'ON DUPLICATE KEY UPDATE valeur = VALUES(valeur) '.
43
			'-- '.__FILE__.' '.__LINE__;
45
			'-- '.__FILE__.' '.__LINE__;
44
 
46
 
45
		// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
47
		// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
46
		// où l'on change de sgbd
48
		// où l'on change de sgbd
47
		$ajout = $this->requeter($requete);
49
		$ajout = $this->requeter($requete);
48
		return ($ajout !== false);
50
		return ($ajout !== false);
49
	}
51
	}
50
}
52
}
51
?>
53
?>