[réglé]Reponse double dans une requête avec LEFT JOIN

WRInaute occasionnel
Bonjour,

Pour éviter d'exécuter plusieurs requêtes mysql, j'ai essayé de les regrouper en une requête avec LEFT JOIN.
Le problème c'est que la requête me renvoi des lignes en double

Voic le code d'avant (simplifié)
Code:
$sql2 = "SELECT * FROM $tab_ch WHERE (id_pseudo=$id_pseudo)";
$reponse2 = mysql_query($sql2);

while ($fiche = mysql_fetch_array($reponse2))
{
      $id_an = $fiche['id_an']
      $sql3 = "SELECT * FROM $tab_img WHERE (id_an=$id_an)";
      $reponse3 = mysql_query($sql3);

voici le nouveau code
Code:
$sql3 = "SELECT * FROM $tab_ch LEFT JOIN $tab_img on $tab_ch.id_an = $tab_img.id_an WHERE ($tab_ch.id_pseudo=$id_pseudo)";
$reponse3 = mysql_query($sql3);

Avec le nouveau code, si dans la table $tab_img il y a plusieurs lignes qui contient le même id_an, il affiche plusieurs fois la même ligne.
 
WRInaute passionné
Et cela ?
Code:
$sql2 = "SELECT * FROM $tab_ch, $tab_img 
WHERE $tab_ch.id_an = $tab_img.id_an 
AND ($tab_ch.id_pseudo=$id_pseudo)"; 
$reponse3 = mysql_query($sql3);

ou en utilisant une syntaxe group by ?
 
WRInaute occasionnel
oui avec le group by sauf que je n'arrive pas tout le temps à récuperer le id_annonce

edit: en spécifiant tout les champs que je veux récupérer, ça fonctionne

Merci Aye-Aye
 
WRInaute passionné
J'allais justement te demander l'erreur retournée par la 1ère requête donnée... pour rectifier. :wink:
 
Discussions similaires
Haut