Médiaforma

All posts tagged tables

Pour travailler sur des données plus consistantes, vous allez utiliser plusieurs tables fournies en exemple par Microsoft dans la base de données Northwind.

Commencez par télécharger les fichiers suivants :

Fichier Emplacement
customers.csv https://www.mediaforma.com/encours/customers.csv
orders.csv https://www.mediaforma.com/encours/orders.csv
order_details.csv https://www.mediaforma.com/encours/order_details.csv

 

Ouvrez phpMyAdmin en tant qu’utilisateur root. Importez ces trois tables dans la base de données northwind, sous les noms customers, orders et order_details.

Solution

Faites une pause dans la vidéo pour vous permettre de créer la base de données northwing et d’y importer les trois tables que vous aurez téléchargées. Poursuivez la lecture de la vidéo pour avoir des informations détaillées sur l’importation.

1)      Une fois connecté à phpMyAdmin en tant que root, sélectionnez l’onglet Importer et importez les fichiers customers.csv, orders.csv et order_details.csv . Vous utiliserez le paramétrage suivant :

  • Jeu de caractères UTF8
  • Format CSV
  • Colonnes séparées par des points-virgules
  • Colonnes entourées par des guillemets
  • Cochez la case “La première ligne du fichier contient le nom des colonnes de la table”

2)      Renommez la base de données csv_db en northwind. Pour cela, cliquez sur csv_db dans le volet gauche, sélectionnez l’onglet Opérations et utilisez le groupe d’options Changer le nom de la base de données pour.

3)      Modifiez le nom des tables en customers, orders et order_details. Pour cela, cliquez sur leur nom dans le volet gauche, basculez sur l’onglet Opérations et utilisez le groupe d’options Copier la table vers.


Pour vous entraîner à manipuler l’interface phpMyAdmin, trouvez la technique permettant de modifier le contenu de la table utilisateurs.

Solution

Faites une pause dans la vidéo. Poursuivez la lecture pour prendre connaissance de la technique à utiliser.

Pour être en mesure de modifier les données de la table utilisateurs, vous devez au préalable créer un champ indexé à valeurs uniques :

  1. Sélectionnez l’onglet Structure.
  2. Sous la liste des champs, sélectionnez l’option En début de table et cliquez sur Exécuter pour ajouter le nouveau champ en début de table.
  3. Définissez un champ nommé (par exemple) index, choisissez UNIQUE dans la liste Index et cochez la case A_I (AUTO_INCREMENT) :
  4. Cliquez sur Sauvegarder puis basculez sur l’onglet Afficher.

Maintenant, vous pouvez modifier les données stockées dans les enregistrements en cliquant sur les liens Modifier correspondants :

Remarque

Toutes les tables doivent avoir un champ qui permet de les identifier de façon unique.


A l’aide d’instructions PHP, définissez :

  • La base de données basephp
  • La table tablephp, composée des champs suivants :
    • id de type entier autoincrémenté non nul, utilisé comme index de la table ;
    • nom de type varchar(50) ;
    • prenom de type varchar(50) ;
    • compteurvisite de type smallint ;
    • dernierevisite de type timestamp.

Ajoutez les données suivantes dans la table :

Pierre, Dubur, 34, NOW()
Chantal, Garnier, 128, NOW()
Jean, Dupont, 2, NOW()
Belle, Vercor, 45, NOW()

Affichez le contenu de la table pour confirmer que tout s’est bien passé.

Solution

Faites une pause dans la vidéo et effectuez les actions demandées dans l’exercice. Vous pourrez reprendre le visionnage de la vidéo pour avoir des détails sur le code mis en œuvre.

Voici le code utilisé :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Création d'une base de données, t'une table et d'enregistrements dans la table</title>
    <style>
      td { padding-right: 30px;}
    </style>
  </head>
  <body>
    <?php
      // Création de la base de données
      try {
        $base = new PDO('mysql:host=localhost', 'root', '');
      }
      catch(exception $e) {
        die('Erreur '.$e->getMessage());
      }
      $base->exec("CREATE DATABASE basephp DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci");
      $base = null;

      // Création de la table
      try {
        $base = new PDO('mysql:host=localhost; dbname=basephp', 'root', '');
      }
      catch(exception $e) {
        die('Erreur '.$e->getMessage());
      }
      $base->exec("CREATE TABLE tablephp(id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), prenom varchar(50), nom varchar(50), compteurvisite smallint, dernierevisite timestamp)");

      // Ajout de données dans la table
      $base->exec("INSERT INTO tablephp(prenom, nom, compteurvisite, dernierevisite) VALUE('Pierre', 'Dubur', 34, NOW())");
      $base->exec("INSERT INTO tablephp(prenom, nom, compteurvisite, dernierevisite) VALUE('Chantal', 'Garnier', 128, NOW())");
      $base->exec("INSERT INTO tablephp(prenom, nom, compteurvisite, dernierevisite) VALUE('Jean', 'Dupont', 2, NOW())");
      $base->exec("INSERT INTO tablephp(prenom, nom, compteurvisite, dernierevisite) VALUE('Belle', 'Vercor', 45, NOW())");

        $retour = $base->query('SELECT * FROM tablephp');
      echo "<table>";
      while ($data = $retour->fetch()){
        echo "<tr><td>".$data['prenom']."</td>";
        echo "<td>".$data['nom']."</td>";
        echo "<td>".$data['compteurvisite']."</td>";
        echo "<td>".$data['dernierevisite']."</td>";
      }
      echo "</table>";
      $base = null;
    ?>
  </body>
</html>

Le code commence par la définition d’une instance de la classe PDO.

La méthode exec est alors exécutée pour créer la base de données basephp.

La base de données basephp est alors fermée en affectant la valeur null à son handle.

L’instruction suivante ouvre la base de données basephp.

SI tout s’est bien passé, la méthode exec est utilisée pour créer la table tablephp.

Le bloc d’instructions suivant ajoute des données dans la table tablephp.

Il ne reste plus qu’à afficher le contenu de la table tablephp. Pour cela, nous lançons une requête sur la table tablephp et nous affichons son contenu à l’aide d’une boucle while.

Enfin, la base de données est fermée en en affectant la valeur null à son handle.

Exécutons ce code dans WAMP Server.

La base de données basephp est créée. La table tablephp est créée. Des données y sont mémorisées puis son contenu est affiché.