Médiaforma

PHP MySQL – Exercice – Interrogation d’une table

Print Friendly

Affichez tous les champs de tous les enregistrements de la table customers dans un tableau.

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.

Voici le code à utiliser :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Accès à la bdd testconsole avec PDO</title>
  </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 * FROM customers');
      echo "<table>";
      while ($data = $retour->fetch()){
        echo "<tr><td>".$data['CustomerID']."</td>";
        echo "<td>".$data['CompanyName']."</td>";
        echo "<td>".$data['ContactName']."</td>";
        echo "<td>".$data['ContactTitle']."</td>";
        echo "<td>".$data['Address']."</td>";
        echo "<td>".$data['City']."</td>";
        echo "<td>".$data['PostalCode']."</td>";
        echo "<td>".$data['Country']."</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 customers. Cette requête retourne tous les champs de tous les enregistrements de la table customers.

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.

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

No comments yet.

Leave a Reply