Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2022 Rev 2415
1
<?php
1
<?php
-
 
2
// declare(encoding='UTF-8');
-
 
3
/**
-
 
4
 * Contient les requêtes effecturant la migration pour Sauvages.
-
 
5
 *
-
 
6
 * @category   CEL
-
 
7
 * @package    Scripts
-
 
8
 * @subpackage Migration : Sauvages
-
 
9
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
-
 
10
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
-
 
11
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
-
 
12
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
-
 
13
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
-
 
14
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
-
 
15
 */
2
class Dao extends Bdd {
16
class Dao extends Bdd {
3
 
17
 
4
	public function obtenirNbObservationsSauvages() {
18
	public function obtenirNbObservationsSauvages() {
5
		$requete = 'SELECT COUNT(*) AS nb '.
19
		$requete = 'SELECT COUNT(*) AS nb '.
6
			'FROM cel_obs '.
20
			'FROM cel_obs '.
7
			'WHERE mots_cles_texte LIKE "%sauvages%" '.
21
			'WHERE mots_cles_texte LIKE "%sauvages%" '.
8
			'	AND mots_cles_texte LIKE "%Projets coopératifs%" '.
22
			'	AND mots_cles_texte LIKE "%Projets coopératifs%" '.
9
			'	AND mots_cles_texte NOT LIKE "%florileges%" '.
23
			'	AND mots_cles_texte NOT LIKE "%florileges%" '.
10
			' -- '.__FILE__.' '.__LINE__;
24
			' -- '.__FILE__.' '.__LINE__;
11
 
25
 
12
		$resultat = $this->recuperer($requete);
26
		$resultat = $this->recuperer($requete);
13
		return $resultat['nb'];
27
		return $resultat['nb'];
14
	}
28
	}
15
 
29
 
16
	public function obtenirObservationsSauvages($debut, $limite) {
30
	public function obtenirObservationsSauvages($debut, $limite) {
17
		$requete = 'SELECT * '.
31
		$requete = 'SELECT * '.
18
			'FROM cel_obs '.
32
			'FROM cel_obs '.
19
			'WHERE mots_cles_texte LIKE "%sauvages%" '.
33
			'WHERE mots_cles_texte LIKE "%sauvages%" '.
20
			'	AND mots_cles_texte LIKE "%Projets coopératifs%" '.
34
			'	AND mots_cles_texte LIKE "%Projets coopératifs%" '.
21
			'	AND mots_cles_texte NOT LIKE "%florileges%" '.
35
			'	AND mots_cles_texte NOT LIKE "%florileges%" '.
22
			"LIMIT $debut, $limite ".
36
			"LIMIT $debut, $limite ".
23
			' -- '.__FILE__.' '.__LINE__;
37
			' -- '.__FILE__.' '.__LINE__;
24
 
38
 
25
		$resultat = $this->recupererTous($requete);
39
		$resultat = $this->recupererTous($requete);
26
		return $resultat;
40
		return $resultat;
27
	}
41
	}
28
 
42
 
29
	public function ajouterChampsEtendusParLots($obs_a_champs_etendus) {
43
	public function ajouterChampsEtendusParLots($obs_a_champs_etendus) {
30
		$lignes = array();
44
		$lignes = array();
31
 
45
 
32
		foreach ($obs_a_champs_etendus as $champs_etendus_obs) {
46
		foreach ($obs_a_champs_etendus as $champs_etendus_obs) {
33
			foreach ($champs_etendus_obs as $champ_etendu) {
47
			foreach ($champs_etendus_obs as $champ_etendu) {
34
				$id = $this->proteger($champ_etendu['id_observation']);
48
				$id = $this->proteger($champ_etendu['id_observation']);
35
				$cle = $this->proteger($champ_etendu['cle']);
49
				$cle = $this->proteger($champ_etendu['cle']);
36
				$label = $this->proteger($champ_etendu['label']);
50
				$label = $this->proteger($champ_etendu['label']);
37
				$valeur = $this->proteger($champ_etendu['valeur']);
51
				$valeur = $this->proteger($champ_etendu['valeur']);
38
				$lignes[] = "($id, $cle, $label, $valeur)";
52
				$lignes[] = "($id, $cle, $label, $valeur)";
39
			}
53
			}
40
		}
54
		}
41
 
55
 
42
		$requete = "INSERT INTO cel_obs_etendues (id_observation, cle, label, valeur) ".
56
		$requete = "INSERT INTO cel_obs_etendues (id_observation, cle, label, valeur) ".
43
			'VALUES '.implode(',', $lignes).' '.
57
			'VALUES '.implode(',', $lignes).' '.
44
			'ON DUPLICATE KEY UPDATE valeur = VALUES(valeur) '.
58
			'ON DUPLICATE KEY UPDATE valeur = VALUES(valeur) '.
45
			'-- '.__FILE__.' '.__LINE__;
59
			'-- '.__FILE__.' '.__LINE__;
46
 
60
 
47
		// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
61
		// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
48
		// où l'on change de sgbd
62
		// où l'on change de sgbd
49
		$ajout = $this->requeter($requete);
63
		$ajout = $this->requeter($requete);
50
		return ($ajout !== false);
64
		return ($ajout !== false);
51
	}
65
	}
52
}
-
 
53
?>
-
 
54
66
}
-
 
67
55
68