Subversion Repositories eFlore/Applications.cel

Rev

Rev 2017 | Blame | Last modification | View Log | RSS feed

<?php
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);
        }
}
?>