Requête avec jointure

Eléphanteau du PHP | 13 Messages

28 oct. 2020, 19:16

Bonjour,

J'ai réalisé un formulaire permettant d'ajouter un produit dans ma base de données.
Je souhaiterai afficher les noms des fournisseurs au lieu des id dans ma liste déroulante "Fournisseur".

table produits :
idProduits,
reference,
nom,
idFournisseur,
quantite,
commentaire

table fournisseurs :
idFournisseur,
Societe,
Adresse,
CP,
Ville,
Commentaire

Voici mon code :

Code : Tout sélectionner

<div class="container"> <form action="index.php?page=traitementAP" method="post" class="col-5 m-auto"> <div class="form-group"> <label for="ref">Référence</label> <input type="text" id="ref" name="reference" class="form-control" placeholder="votre référence" required> </div> <div class="form-group"> <label for="nom">Nom</label> <input type="text" id="nom" name="nom" class="form-control" placeholder="votre nom" required> </div> <div class="form-group"> <label for="quant">Quantité</label> <input type="text" id="quant" name="quantite" class="form-control" placeholder="quantité" required> </div> <div class="form-group"> <label for="idFournisseur">Fournisseur</label> <select name="idFournisseur" id="idFournisseur"> <?php $filename = 'connect.php'; if(file_exists($filename)){ include($filename); $requete = "SELECT produits.idProduits, produits.reference, produits.nom, produits.idFournisseur, produits.quantite, produits.commentaire, fournisseurs.societe FROM produits INNER JOIN fournisseurs ON produits.idProduits=fournisseurs.idFournisseur"; $resultat = $connexion->query($requete); $liste = $resultat->fetchAll(PDO::FETCH_ASSOC); foreach($liste as $donnee){ $valeur = $donnee['idFournisseur']; echo "<option value='".$valeur."'>".$donnee['idFournisseur']."</option>"; } } ?> </select> </div> <div class="form-group"> <label for="com">Commentaire</label> <input name="com" id="com" required class="form-control"> </div> <button class="btn btn-primary">Ajouter</button> </form> </div>
Merci d'avance !

Cordialement.

Mammouth du PHP | 2703 Messages

28 oct. 2020, 19:22

echo "<option value='".$valeur."'>".$donnee['idFournisseur']."</option>";
pour ne pas afficher l'id du fournisseur, il ne faut donc pas mettre $donnee['idFournisseur']

Eléphanteau du PHP | 13 Messages

30 oct. 2020, 11:29

echo "<option value='".$valeur."'>".$donnee['idFournisseur']."</option>";
pour ne pas afficher l'id du fournisseur, il ne faut donc pas mettre $donnee['idFournisseur']
Merci !

Comment je pourrais faire pour afficher dans la liste déroulante les noms des fournisseurs et non les id ?

Cordialement.

Mammouth du PHP | 2703 Messages

30 oct. 2020, 14:57

exécuter
SELECT produits.idProduits,
produits.reference, produits.nom,
produits.idFournisseur, produits.quantite,
produits.commentaire, fournisseurs.societe
FROM produits
INNER JOIN fournisseurs
ON produits.idProduits=fournisseurs.idFournisseur
dans phpmyadmin et trouver le nom de la colonne à utiliser.
à noter que cette requête va n'afficher les fournisseurs que s'ils ont déjà un produit de lié. pour afficher tous les fournisseurs, pas besoin de jointure.