Ressources informatiques

Ressources informatiques

Ressources informatiques

PHP : Afficher le contenu d'une table MySQL

Exemples de mise en oeuvre

On souhaite creer une page Web permettant d'afficher la liste des fournisseurs de la base de données dont le MCD est donné ci-dessous :

Diagramme de classes Base meubleFournisseur

Affichage du résultat sous la forme d'un tableau

Résultat attendu
Affichage du contenu d'une table MySQL en PHP

Il est nécessaire, afin d'écrire le code PHP correct, de visualiser le résultat attendu affiché dans la page Web et d'imaginer le code HTML nécessaire à la production de ce résultat.

Code HTML à générer
<section>
<h2>Liste des fournisseurs</h2>	
<table>
<tr><th>Nom</th><th>Ville</th></tr>
<tr><td>G Meubles</td><td>Arpajon</td></tr>
<tr><td>B Meubles</td><td>Etampes</td></tr>
<tr><td>H Meubles</td><td>Dourdan</td></tr>
</table> 
</section>

La partie surlignée est celle qui doit être générée automatiquement en fonction du contenu de la base de données.

Code PHP : production du résultat

Je donne ci-dessous un exemple utilisant les fonctions PHP mysqli_… dans le style procédural.

<section>
<h2>Liste des fournisseurs</h2>	
<table>
<tr><th>Nom</th><th>Ville</th></tr>
<?php
// Effectuer la connexion à la Base de Données
$serverName = "localhost";       // serveur local
$userName = "adminBaseMeuble";   // administrateur de la base
$password = "bonjour";           // mot de passe de l'administrateur
$dbName = "meubleFournisseur";   // nom de la base
$connexion = mysqli_connect($serverName, $userName, $password, $dbName);
if ($connexion) {
 // Effectuer la requête
 $query = "SELECT fou_nom, fou_ville FROM fournisseur ";
 $result = mysqli_query($connexion, $query);

 // Afficher les lignes du tableau en fonction de la réponse à la requête
 if ($result) {
  if (mysqli_num_rows($result) > 0) {
   while($row = mysqli_fetch_assoc($result)) {
    echo "<tr><td>".$row["fou_nom"]."</td><td>".$row["fou_ville"]."</td></tr>\n";
   }
  }
 }
 
 // Fermer la connexion
 mysqli_close($connexion);
}
?>
</table> 
</section>

Affichage du résultat sous la forme d'une liste déroulante

Il peut être utile d'afficher le résultat sous la forme d'une liste déroulante permettant par la suite d'afficher, en cliquant, sur un élément de la liste, les meubles fabriqué par un fournisseur.

Résultat attendu
Affichage du contenu d'une table MySQL en PHP
Extrait du code PHP
<label for="fournisseursSelect">Sélectionnez un fournisseur : </label>
<select id="fournisseursSelect" name="fournisseursSelect"> 
<option value='0'></option>
<?php
// Effectuer la connexion à la Base de Données
$serverName = "localhost";        // serveur local
$userName = "adminBaseMeuble";   // administrateur de la base
$password = "bonjour";           // mot de passe de l'administrateur
$dbName = "meubleFournisseur";   // nom de la base
$connexion = mysqli_connect($serverName, $userName, $password, $dbName);
if ($connexion) {
 // Effectuer la requête
 $query = "SELECT fou_id, fou_nom FROM fournisseur ";
 $result = mysqli_query($connexion, $query);

 // Afficher les lignes du tableau en fonction de la réponse à la requête
 if ($result) {
  if (mysqli_num_rows($result) > 0) {
   while($row = mysqli_fetch_assoc($result)) {
    echo "<option value='".$row["fou_id"]."'>".$row["fou_nom"]."</option>\n";
   }
  }
 }
 
 // Fermer la connexion
 mysqli_close($connexion);
}
?>
</select>