Afficher une valeur selon l'id de la requete

Petit nouveau ! | 2 Messages

03 oct. 2021, 18:15

Bonjour,

Ça fait plusieurs heures que je suis bloqué sur une requête sql. Voici la structure de ma BDD.
Table : customers / Colonnes : id, f_name
Table : surnom / Colonnes : id_surnom , id_customers, surnom

Je cherche donc à afficher chaque ligne de ma table customers mais en plus je souhaite afficher le surnom de la personne selon son id.
Exemple : id=1 ; f_name= GABRIELLE ; je veux que ma requête affiche son surnom selon son id.

Merci d'avance pour votre aide.
Voici mon code actuel :
<?php
  $host = 'localhost';
  $dbname = 'panel';
  $username = 'root';
  $password = '';
    
	
	
  $dsn = "mysql:host=$host;dbname=$dbname"; 
  // récupérer tous les utilisateurs
  $sql = "SELECT * FROM customers,surnom";
  
  try{
   $pdo = new PDO($dsn, $username, $password);
   
   $stmt = $pdo->query($sql);
   
   
   if($stmt === false){
    die("Erreur");
   }
   
  }catch (PDOException $e){
    echo $e->getMessage();
  }
?>
<!DOCTYPE html>
<html>
<head></head>
<body>
 <h1>Liste des utilisateurs</h1>
 <table>
   <thead>
     <tr>
       <th>ID</th>
       <th>Nom</th>
	   <th>Surnom</th>
     </tr>
   </thead>
   <tbody>
     <?php while($row = $stmt->fetch(PDO::FETCH_ASSOC)) : ?>
     <tr>
       <td><?php echo htmlspecialchars($row['id']); ?></td>
       <td><?php echo htmlspecialchars($row['f_name']); ?></td>
	   <td><?php echo htmlspecialchars($row['surnom']); ?></td>
     </tr>
     <?php endwhile; ?>
   </tbody>
 </table>
</body>
</html>

Mammouth du PHP | 2703 Messages

03 oct. 2021, 18:19


Petit nouveau ! | 2 Messages

03 oct. 2021, 20:22

Merci pour ton aide Mammouth, maintenant je me retrouve avec un autre problème, quand la personne a deux surnoms cela me double la ligne.
<?php
  $host = 'localhost';
  $dbname = 'panel';
  $username = 'root';
  $password = '';
    
	
	
  $dsn = "mysql:host=$host;dbname=$dbname"; 

  $sql = "SELECT id,  f_name, surnom, id_customers FROM surnom, customers WHERE surnom.id_customers = customers.i/d";
  try{
   $pdo = new PDO($dsn, $username, $password);
   
   $stmt = $pdo->query($sql);
   
   
   if($stmt === false){
    die("Erreur");
   }
   
  }catch (PDOException $e){
    echo $e->getMessage();
  }
?>
<!DOCTYPE html>
<html>
<head></head>
<body>
 <h1>Liste des utilisateurs</h1>
 <table>
   <thead>
     <tr>
       <th>ID</th>
       <th>Nom</th>
       <th>Surnom</th>
     </tr>
   </thead>
   <tbody>
     <?php while($row = $stmt->fetch(PDO::FETCH_ASSOC)) : ?>
     <tr>
       <td><?php echo htmlspecialchars($row['id']); ?></td>
	   <td><?php echo htmlspecialchars($row['f_name']); ?></td>
	   <td><?php echo htmlspecialchars($row['surnom']); ?></td>
     </tr>
     <?php endwhile; ?>
   </tbody>
 </table>
</body>
</html>