Rev 30 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** Service fournissant des données sur les résultats d'un traitement.* Encodage en entrée : utf8* Encodage en sortie : utf8** @category Php 5.2* @package Referentiel* @author Jean-Pascal MILCENT <jpm@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 2010 Tela-Botanica* @version $Id$*/class Resultat extends Ref {/*** Méthode principale appelée avec une requête de type GET.*/public function getElement($params_url = array()) {// Initialisation des variables$info = array();// Nour recherchons le type de requête demandé$p = $this->traiterParametresUrl(array('type'), $params_url, false);extract($p);if (!is_null($type)) {$methode = 'getElement'.$type;if (method_exists($this, $methode)) {array_shift($params_url);$info = $this->$methode($params_url);} else {$this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";}} else {$this->messages[] = "Veuillez préciser le type de requête.";}// Envoie sur la sortie standard$this->envoyer($info);}/** Méthode pour récupérer le nombre de résultat d'un traitement donné.* Appelée avec les paramêtres d'url suivant :* /Resultat/Nombre/id_traitement** @return mixed le nombre de résultat ou false en cas d'échec.*/public function getElementNombre($params_url) {$p = $this->traiterParametresUrl(array('id'), $params_url);extract($p);$requete = 'SELECT COUNT(*) AS nbre '."FROM ref_resultat "."WHERE ce_traitement = $id ";// Récupération des résultatstry {$nbre = $this->bdd->query($requete)->fetchColumn();if ($nbre === false) {$this->messages[] = "La requête a retourné aucun résultat.";}} catch (PDOException $e) {$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());}return $nbre;}/** Méthode pour récupérer les infos d'un résultat.* Appelée avec les paramêtres d'url suivant :* /Resultat/Info/id_resultat** @return mixed les infos du résultat ou false en cas d'échec.*/public function getElementInfo($params_url) {$p = $this->traiterParametresUrl(array('id'), $params_url);extract($p);$requete = 'SELECT * '."FROM ref_resultat "."WHERE id_resultat = $id ";// Récupération des résultatstry {$infos = $this->bdd->query($requete)->fetch(PDO::FETCH_ASSOC);if ($infos === false) {$this->messages[] = "La requête a retourné aucun résultat.";}} catch (PDOException $e) {$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());}return $infos;}/** Méthode pour récupérer des infos partielles (id, nom, resultat) des résultats d'un traitement.* Appelée avec les paramêtres d'url suivant :* /Resultat/Traitement/id_traitement** @return mixed le tableau de tableau d'infos ou false en cas d'échec.*/public function getElementTraitement($params_url) {$p = $this->traiterParametresUrl(array('id'), $params_url);extract($p);$requete = 'SELECT * '."FROM ref_resultat "."WHERE ce_traitement = $id ";// Récupération des résultatstry {$infos = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);if ($infos === false) {$this->messages[] = "La requête a retourné aucun résultat.";}} catch (PDOException $e) {$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());}return $infos;}/*** Méthode appelée pour ajouter un traitement.** @return mixed l'id du nouvel enregistrement ou false!*/public function createElement($params_post) {$params_proteges = $this->traiterParametresPost(array('id_traitement', 'nom', 'description', 'resultat', 'message'), $params_post);extract($params_proteges);$meta_date_creation = $this->bdd->quote(date ("Y-m-d H:i:s"));try {$requete = "INSERT INTO ref_resultat ".' (ce_traitement, nom, description, resultat, message, meta_date_creation) '." VALUES ($id_traitement, $nom, $description, $resultat, $message, $meta_date_creation) ";$resultat = $this->bdd->exec($requete);if ($resultat === false) {$id = false;$this->debug[] = "Résultat NON ajouté.";} else {$id = $this->bdd->lastInsertId();}} catch (PDOException $e) {$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);}$this->envoyer($id);}}?>