Afficher une table

Principe

Base bdd - Table auteurs

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éthodeRé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 :

1
<?php
2
// ouverture de la connexion
3
$host = "localhost";
4
$dbname = "bdd";
5
$port = "3306";
6
$username = 'root';
7
$password = 'root';
8
9
$dsn = "mysql:host=$host;port=$port;dbname=$dbname";
10
$options = [
11
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
12
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC 
13
];
14
$db = new PDO($dsn, $username, $password, $options);
15
16
// création de la requête
17
$sql = "SELECT * FROM auteurs";
18
19
// envoi de la requête et récupération du résultat
20
$listeAuteurs = $db->query($sql)->fetchAll();
21
?>

PDO::FETCH_ASSOC : les données seront retournées sous forme de tableau associatif.

1
$listeAteurs = [
2
	['id' => 1, 'nom' => "Flanagan", 'prenom' => "David"],
3
	['id' => 2, 'nom' => "Chaffer", 'prenom' => "Jonathan"],
4
	['id' => 3, 'nom' => "Swedberg", 'prenom' => "Karl"],
5
	['id' => 4, 'nom' => "Van Lancker", 'prenom' => "Luc"],
6
	['id' => 5, 'nom' => "Templier", 'prenom' => "Thierry"],
7
	['id' => 6, 'nom' => "Gougeon", 'prenom' => "Arnaud"],
8
	['id' => 7, 'nom' => "Crockford", 'prenom' => "Douglas"]
9
]

MéthodeAfficher les données.

Pour construire le HTML, nous déroulons les données du tableau $listeAuteurs :

1
<ul>
2
  <?php foreach($listeAuteurs as $auteur){ ?>
3
  <li>
4
    <h3>
5
      <?= "{$auteur['nom']} - {$auteur['prenom']}"; ?>
6
    </h3>
7
  </li>
8
  <?php } ?>
9
</ul>

MéthodeRé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 :

1
<?php
2
// ouverture de la connexion
3
$host = "localhost";
4
$dbname = "bdd";
5
$port = "3306";
6
$username = 'root';
7
$password = 'root';
8
9
$dsn = "mysql:host=$host;port=$port;dbname=$dbname";
10
$options = [
11
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
12
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
13
];
14
$db = new PDO($dsn, $username, $password, $options);
15
16
// création de la requête
17
$sql = "SELECT * FROM auteurs";
18
19
// envoi de la requête et récupération du résultat
20
$listeAuteurs = $db->query($sql)->fetchAll();
21
?>

PDO::FETCH_OBJ : les données seront retournées sous forme d'objets.

MéthodeAfficher les données sous forme d'objets

Pour construire le HTML, nous déroulons les données du tableau $listeAuteurs :

1
<ul>
2
  <?php foreach($listeAuteurs as $auteur){ ?>
3
  <li>
4
    <h3>
5
      <?= "{$auteur->nom} - {$auteur->prenom}"; ?>
6
    </h3>
7
  </li>
8
  <?php } ?>
9
</ul>

HTML généré

HTML généré - Afficher

MéthodeRécupérer un seul enregistrement

Pour récupérer un seul enregistrement, nous utilisons la méthode fetch()

1
<?php
2
// ouverture de la connexion
3
$host = "localhost";
4
$dbname = "bdd";
5
$port = "3306";
6
$username = 'root';
7
$password = 'root';
8
9
$dsn = "mysql:host=$host;port=$port;dbname=$dbname";
10
$options = [
11
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
12
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
13
];
14
$db = new PDO($dsn, $username, $password, $options);
15
16
// création de la requête
17
$sql = "SELECT * FROM auteurs WHERE id=1";
18
19
// envoi de la requête et récupération du résultat
20
$auteur = $db->query($sql)->fetch();
21
?>

MéthodeRé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.

1
<?php
2
// supposons que nous récupérions la variable $id
3
$id = 1;
4
5
// ouverture de la connexion
6
$host = "localhost";
7
$dbname = "bdd";
8
$port = "3306";
9
$username = 'root';
10
$password = 'root';
11
12
$dsn = "mysql:host=$host;port=$port;dbname=$dbname";
13
$options = [
14
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
15
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
16
];
17
$db = new PDO($dsn, $username, $password, $options);
18
19
// création de la requête
20
$sql = "SELECT * FROM auteurs WHERE id=:id";
21
22
// envoi de la requête et récupération du résultat
23
$statement = $db->prepare($sql);
24
$statement->execute(['id'=>$id]);
25
$auteur = $statement->fetch();
26
?>