Médiaforma

PHP MySQL – Exercice – Une autre interrogation de table

Print Friendly

Interrogez la table orders et affichez les champs OrderID, Customer et ShipCity des enregistrements dont le champ ShipCountry vaut France.

Solution

Faites une pause dans la vidéo pour vous permettre de définir le code. Vous pourrez poursuivre le visionnage de la vidéo pour prendre connaissance de la solution.

 <!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Accès à la table orders de la bdd Northwind avec PDO</title>
    <style>
      td { padding-right: 30px;}
    </style>
  </head>
  <body>
    <?php
      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 OrderID, Customer, ShipCity FROM orders WHERE ShipCountry="France"');
      echo "<table>";
      while ($data = $retour->fetch()){
        echo "<tr><td>".$data['OrderID']."</td>";
        echo "<td>".$data['Customer']."</td>";
        echo "<td>".$data['ShipCity']."</td></tr>";
      }
      echo "</table>";
      $base = null;
    ?>
  </body>
</html>

La base de données est ouverte en créant un objet PDO.

Si une erreur se produit à l’ouverture de la base, elle est affichée et le programme s’arrête

Si tout s’est bien passé, on indique que l’encodage à utiliser est UTF-8

Puis une requête SQL est appliquée à la table orders. Cette requête récupère les champs OrderID, Customer et Shipcity pour lesquels le champ shipcountry vaut France.

Les données filtrées par la requête sont obtenues avec la fonction fetch. Une boucle while permet de parcourir toutes les données de la table. Les champs de chaque enregistrement sont alors affichés dans les colonnes d’un tableau HTML.

Enfin, l’objet PDO $base est supprimé pour mettre fin à la connexion.

Exécutons ce script dans WAMP Server. Voici le résultat.

 

Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply