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

Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
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>";} ?>


2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour
    Fais donc une seule requete avec une jointure...

    0
    1. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
       
      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
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    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