Lire et afficher une table MySQL

Affichage du contenu de la table carnet dans une page HTML

Voici un code PHP pour lire et afficher le contenu de la table carnet dans une page HTML. Le principe est d’exécuter une requête SQL puis de stocker le résultat dans des variables qui seront affichées avec la commande echo.

affichage.php

<!DOCTYPE html>
<html lang="fr">
	<head>
		<meta charset="utf-8">
        <title>Carnet d'adresses</title>
	</head>
	<body>
        <h1>Carnet d'adresses</h1>
		<?php
		$mysqli = new mysqli("localhost", "root", "", "essai");
		$mysqli->set_charset("utf8");
		$requete = "SELECT * FROM carnet";
		$resultat = $mysqli->query($requete);
		while ($ligne = $resultat->fetch_assoc()) {
			echo $ligne['civilite'] . ' ' . $ligne['prenom'] . ' ' . $ligne['nom'] . ' ' . $ligne['email'] . ' ' . $ligne['date_naissance'] . '<br>';
		}
		$mysqli->close();
		?>
	</body> 
</html>

Explications pas à pas

$mysqli = new mysqli("localhost", "root", "", "essai");

Cette ligne permet la connexion à MySQL et à la base de données essai. L'objet $mysqli est alors créé. C'est dans le cadre de cet objet que seront réalisées les opérations qui suivent.

$mysqli->set_charset("utf8");

La méthode set_charset("utf8") permet de définir le jeu de caractères UTF8 pour la lecture et l’écriture de données dans les tables MySQL. Cela permettra de stocker, par exemple, des caractères accentués dans les champs de type TEXT ou VARCHAR et de les extraire correctement pour les afficher dans une page.

$requete = "SELECT * FROM carnet";

Stockage de la requête SQL dans la variable $requete. La requête signifie : Afficher tous les champs de la table carnet.

$resultat = $mysqli->query($requete);

Exécution de la requête, puis stockage du résultat dans l'objet $resultat.

$ligne = $resultat->fetch_assoc();

Stocke la première ligne de la table carnet (le premier contact) dans la variable de type tableau $ligne. La boucle while permet d’extraire tout le contenu de la table carnet, ligne après ligne.

echo $ligne['prenom'] . ' ' . $ligne['nom'] . '<br>';

La commande echo permet d’afficher dans la page HTML le prénom et le nom séparé par un espace, suivi d’un retour à la ligne. Rappelons que le point permet de concaténer les espaces et la balise <br> avec la variable $ligne.

$mysqli->close();

Fermeture de la connexion à MySQL.
Notez que si l'on omet cette commande, la connexion à MySQL est automatiquement fermée à la fin de la page. Il est cependant conseillé de fermer les connexions dès que l'on n'a plus besoin de MySQL, afin de solliciter le serveur le moins possible.

Résultat

Lecture d'une table MySQL