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