* @author Jean-Pascal MILCENT * @author Aurelien PERONNET * @license GPL v3 * @license CECILL v2 * @copyright 1999-2014 Tela Botanica */ 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); } }