--- /dev/null
+<?php
+
+ require_once('protected/required.php');
+
+ class PdoVersionManager extends AbstractPdoManager implements VersionManager {
+
+ public function createVersion($version) {
+
+ $query = $this -> pdo -> prepare(
+ 'INSERT INTO versions (valeur, produit, nature) VALUES (:valeur, :produit, :nature);'
+ );
+ $query -> bindValue(':valeur', $version -> getValeur());
+ $query -> bindValue(':produit', $version -> getProduit());
+ $query -> bindValue(':nature', $version -> getNature());
+ $query -> execute();
+ }
+
+ public function updateVersion($version) {
+
+ $query = $this -> pdo -> prepare(
+ 'UPDATE versions
+ SET valeur = :valeur,
+ produit = :produit,
+ nature = :nature
+ WHERE id = :id'
+ );
+ $query -> bindValue(':id', $version -> getId());
+ $query -> bindValue(':valeur', $version -> getValeur());
+ $query -> bindValue(':produit', $version -> getProduit());
+ $query -> bindValue(':nature', $version -> getNature());
+ $query -> execute();
+ }
+
+ public function getVersion($id) {
+
+ $query = $this -> pdo -> prepare('SELECT * FROM versions WHERE id = :id');
+ $query -> bindValue(':id', $id);
+ $query -> execute();
+
+ $result = $query -> fetch(PDO::FETCH_ASSOC);
+ $version = new Version($result['id'], $result['valeur'], $result['produit'], $result['nature']);
+
+ $query->closeCursor();
+
+ return $version;
+ }
+
+ public function getNatureOfVersionForValeurAndProduitId($valeur, $produit_id) {
+
+ $query = $this -> pdo -> prepare('SELECT nature FROM versions WHERE valeur = :valeur AND produit = :produit');
+ $query -> bindValue(':valeur', $valeur);
+ $query -> bindValue(':produit', $produit_id);
+ $query -> execute();
+
+ $result = $query -> fetch(PDO::FETCH_ASSOC);
+
+ $query->closeCursor();
+
+ return $result['nature'];
+ }
+
+ public function getVersions() {
+
+ $query = $this -> pdo -> prepare('SELECT * FROM versions');
+ $query -> execute();
+
+ $results = $query -> fetchAll(PDO::FETCH_ASSOC);
+ $versions = array();
+ foreach ($results as $result) {
+ $versions[] = new Version($result['id'], $result['valeur'], $result['produit'], $result['nature']);
+ }
+
+ $query->closeCursor();
+
+ return $versions;
+ }
+
+ public function findValeursOfVersionsByProduitId($produit_id) {
+
+ $query = $this -> pdo -> prepare('SELECT valeur FROM versions WHERE produit = :produit');
+ $query -> bindValue('produit', $produit_id);
+ $query -> execute();
+
+ $results = $query -> fetchAll(PDO::FETCH_ASSOC);
+ $valeurs = array();
+ foreach ($results as $result) {
+ $valeurs[] = $result['valeur'];
+ }
+
+ $query->closeCursor();
+
+ return $valeurs;
+ }
+
+ public function removeVersion($version) {
+
+ $query = $this -> pdo -> prepare('DELETE FROM versions WHERE id = :id');
+ $query -> bindValue('id', $version -> getId());
+ $query -> execute();
+ }
+
+ }
+
+?>