Subversion Repositories eFlore/Applications.cel

Rev

Rev 2415 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * Contient les requêtes effecturant la migration pour Sauvages.
 *
 * @category   CEL
 * @package    Scripts
 * @subpackage Migration : Sauvages
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
 */
class Dao extends Bdd {

        public function obtenirNbObservationsSauvages() {
                $requete = 'SELECT COUNT(*) AS nb '.
                        'FROM cel_obs '.
                        'WHERE mots_cles_texte LIKE "%sauvages%" '.
                        '       AND mots_cles_texte LIKE "%Projets coopératifs%" '.
                        '       AND mots_cles_texte NOT LIKE "%florileges%" '.
                        ' -- '.__FILE__.' '.__LINE__;

                $resultat = $this->recuperer($requete);
                return $resultat['nb'];
        }

        public function obtenirObservationsSauvages($debut, $limite) {
                $requete = 'SELECT * '.
                        'FROM cel_obs '.
                        'WHERE mots_cles_texte LIKE "%sauvages%" '.
                        '       AND mots_cles_texte LIKE "%Projets coopératifs%" '.
                        '       AND mots_cles_texte NOT LIKE "%florileges%" '.
                        "LIMIT $debut, $limite ".
                        ' -- '.__FILE__.' '.__LINE__;

                $resultat = $this->recupererTous($requete);
                return $resultat;
        }

        public function ajouterChampsEtendusParLots($obs_a_champs_etendus) {
                $lignes = array();

                foreach ($obs_a_champs_etendus as $champs_etendus_obs) {
                        foreach ($champs_etendus_obs as $champ_etendu) {
                                $id = $this->proteger($champ_etendu['id_observation']);
                                $cle = $this->proteger($champ_etendu['cle']);
                                $label = $this->proteger($champ_etendu['label']);
                                $valeur = $this->proteger($champ_etendu['valeur']);
                                $lignes[] = "($id, $cle, $label, $valeur)";
                        }
                }

                $requete = "INSERT INTO cel_obs_etendues (id_observation, cle, label, valeur) ".
                        'VALUES '.implode(',', $lignes).' '.
                        'ON DUPLICATE KEY UPDATE valeur = VALUES(valeur) '.
                        '-- '.__FILE__.' '.__LINE__;

                // la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
                // où l'on change de sgbd
                $ajout = $this->requeter($requete);
                return ($ajout !== false);
        }
}