Afficher resultat de la 2ème table dans la 1er

Fermé
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 26 août 2018 à 20:18
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 - 27 août 2018 à 10:27
Bonjour,

J'ai un petit soucis avec le code ci-dessous. Pouvez-vous m'aider à le corriger svp ?
Le résultat n'affiche qu'un seul (le premier) enregistrement...
Dans
tb_produits
, il y a Libelle_TAG qui est repris dans
tb_votes_produits
, ce que je souhaite c'est afficher
tb_produits.Code
qui correspond au
tb_votes_produits.Libelle_TAG


<?php try{$stat = $pdo->query("SELECT * FROM tb_votes_produits WHERE Pseudo='".$_SESSION_PSEUDO."' "); while($data=$stat->fetch(PDO::FETCH_ASSOC)){
$LTAG = $data["Libelle_TAG"];
$VOTE = $data["Vote"];
?>

<?php
try{
	$stat = $pdo->query("SELECT Libelle_TAG, Libelle".$_LANGUE.", Code, Contenance".$_LANGUE." FROM tb_produits WHERE Libelle_TAG = '".$LTAG."' "); while($datas = $stat->fetch(PDO::FETCH_ASSOC)){
if(
$LTAG == $datas["Libelle_TAG"]) {
$PROD = $datas["Libelle".$_LANGUE];
$CODE = $datas["Code"]; 
$CONT = $datas["Contenance".$_LANGUE]; 
}
}}catch(PDOException $e){echo "<div class='alert alert-danger'>".$e->getMessage()."</div>";}
?>

<?php echo $PROD; ?>
<?php echo $CONT; ?>
<?php echo $VOTE; ?>
<?php echo $CODE; ?>

<?php }}catch(PDOException $e){echo "<div class='alert alert-danger'>".$e->getMessage()."</div>";} ?>


A voir également:

2 réponses

jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
27 août 2018 à 00:27
Bonjour
Fais donc une seule requete avec une jointure...

0
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
27 août 2018 à 00:47
Bonjour Jordane45,
Je viens de tenter avec
SELECT * FROM tb_votes_produits, tb_produits WHERE tb_produits.Libelle_TAG = tb_votes_produits.Libelle_TAG AND Pseudo='".$_SESSION_PSEUDO."'
et ca a marché...
As tu une manière plus appropriée et plus propre que celle là ?
0
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
Modifié le 27 août 2018 à 10:27
Déjà.. j'utiliserai les requêtes préparées pour protéger un minimum contre l'injection sql...
Ensuite, pour la requête, je ferai un LEFT JOIN

Voila à quoi devrait ressembler ton code
$sql = "SELECT * 
        FROM tb_votes_produits V
        LEFT JOIN tb_produits T ON T.Libelle_TAG = V.Libelle_TAG
        WHERE Pseudo= :pseudo ";
$datas = array(':pseudo'=>$_SESSION_PSEUDO);
try{
 $prep = $pdo->prepare($sql); 
  $prep->execute($datas);
}catch(PDOException $e){
  echo "<div class='alert alert-danger'>".$e->getMessage()."</div>";
} 
  
while($datas = $prep->fetch(PDO::FETCH_ASSOC)){


0