Afficher une table
Principe
Pour afficher le contenu d'une table il faut :
Récupérer les données de la base.
Construire le HTML avec ces données.
Méthode : Récupérer les données sous forme de tableau associatif
Nous récupérons les données de la base et nous les affectons au tableau $listeAuteurs :
// ouverture de la connexion
$host = "localhost";
$dbname = "bdd";
$port = "3306";
$username = 'root';
$password = 'root';
$dsn = "mysql:host=$host;port=$port;dbname=$dbname";
$options = [
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
];
$db = new PDO($dsn, $username, $password, $options);
// création de la requête
$sql = "SELECT * FROM auteurs";
// envoi de la requête et récupération du résultat
$listeAuteurs = $db->query($sql)->fetchAll();
PDO::FETCH_ASSOC : les données seront retournées sous forme de tableau associatif.
$listeAteurs = [
['id' => 1, 'nom' => "Flanagan", 'prenom' => "David"],
['id' => 2, 'nom' => "Chaffer", 'prenom' => "Jonathan"],
['id' => 3, 'nom' => "Swedberg", 'prenom' => "Karl"],
['id' => 4, 'nom' => "Van Lancker", 'prenom' => "Luc"],
['id' => 5, 'nom' => "Templier", 'prenom' => "Thierry"],
['id' => 6, 'nom' => "Gougeon", 'prenom' => "Arnaud"],
['id' => 7, 'nom' => "Crockford", 'prenom' => "Douglas"]
]
Méthode : Afficher les données.
Pour construire le HTML, nous déroulons les données du tableau $listeAuteurs :
<ul>
foreach($listeAuteurs as $auteur){
<li>
<h3>
= "{$auteur['nom']} - {$auteur['prenom']}";
</h3>
</li>
}
</ul>
Méthode : Récupérer les données sous forme de tableau d'objets
Nous pouvons récupérer les données de la base sous forme de tableau d'objets :
// ouverture de la connexion
$host = "localhost";
$dbname = "bdd";
$port = "3306";
$username = 'root';
$password = 'root';
$dsn = "mysql:host=$host;port=$port;dbname=$dbname";
$options = [
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
];
$db = new PDO($dsn, $username, $password, $options);
// création de la requête
$sql = "SELECT * FROM auteurs";
// envoi de la requête et récupération du résultat
$listeAuteurs = $db->query($sql)->fetchAll();
PDO::FETCH_OBJ : les données seront retournées sous forme d'objets.
Méthode : Afficher les données sous forme d'objets
Pour construire le HTML, nous déroulons les données du tableau $listeAuteurs :
<ul>
foreach($listeAuteurs as $auteur){
<li>
<h3>
= "{$auteur->nom} - {$auteur->prenom}";
</h3>
</li>
}
</ul>
HTML généré
Méthode : Récupérer un seul enregistrement
Pour récupérer un seul enregistrement, nous utilisons la méthode fetch()
// ouverture de la connexion
$host = "localhost";
$dbname = "bdd";
$port = "3306";
$username = 'root';
$password = 'root';
$dsn = "mysql:host=$host;port=$port;dbname=$dbname";
$options = [
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
];
$db = new PDO($dsn, $username, $password, $options);
// création de la requête
$sql = "SELECT * FROM auteurs WHERE id=1";
// envoi de la requête et récupération du résultat
$auteur = $db->query($sql)->fetch();
Méthode : Récupérer un seul enregistrement avec une requête préparée
Si la requête contient une variable, il est préférable d'utiliser une requête préparée.
// supposons que nous récupérions la variable $id
$id = 1;
// ouverture de la connexion
$host = "localhost";
$dbname = "bdd";
$port = "3306";
$username = 'root';
$password = 'root';
$dsn = "mysql:host=$host;port=$port;dbname=$dbname";
$options = [
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
];
$db = new PDO($dsn, $username, $password, $options);
// création de la requête
$sql = "SELECT * FROM auteurs WHERE id=:id";
// envoi de la requête et récupération du résultat
$statement = $db->prepare($sql);
$statement->execute(['id'=>$id]);
$auteur = $statement->fetch();