Médiaforma

PHP MySQL – Le modèle dans une architecture MVC

Print Friendly

La partie modèle du projet va récupérer les données dans la base de données MySQL et les retourner au contrôleur. Définissez le fichier trier.php dans le dossier MVC\modèle et insérez les instructions suivantes dans ce fichier.

<?php
  function trier($champ) {
    $nomchamp=array("OrderID", "Customer", "Employee", "OrderDate", "RequiredDate", "ShippedDate", "ShipVia", "Freight", "ShipName", "ShipAddress", "ShipCity", "ShipPostalCode", "ShipCountry");
    try {
      $base = new PDO('mysql:host=localhost; dbname=northwind', 'root', '');
    }
    catch(exception $e) {
      die('Erreur '.$e->getMessage());
    }
    $base->exec("SET CHARACTER SET utf8");
    $retour = $base->query("SELECT * FROM orders ORDER BY ".$nomchamp[$champ]);
    $data = $retour->fetchAll();
    return $data;
  }
?>

Comme vous pouvez le voir, le fichier trier.php contient une seule fonction nommée trier(). Cette fonction admet un paramètre : l’index du champ sur lequel les données doivent être triées.

Le code est extrêmement simple.

Dans un premier temps, on définit le tableau $nomchamp qui contient le nom des champs de la table orders. Cette étape est nécessaire, car il faudra spécifier le nom du champ selon lequel les données doivent être triées dans la requête SQL.

Le code définit alors un accès PDO à la base de données northwind :

$base = new PDO('mysql:host=localhost; dbname=northwind', 'root', '');

Les données sont lues selon l’encodage UTF-8 :

$base->exec("SET CHARACTER SET utf8");

La requête SQL obtient toutes les données de la table orders, classées selon le champ passé en paramètre de la fonction :

$retour = $base->query("SELECT * FROM orders ORDER BY ".$nomchamp[$champ]);

Le résultat de la requête est stocké dans le tableau $data et retourné à l’appelant :

$data = $retour->fetchAll();
return $data;
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply