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

silverbeach
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 333
Inscription: 20 Juil 2005

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

Message le Mer Oct 22, 2008 17:10

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: Tout sélectionner
$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: Tout sélectionner
$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.
Dernière édition par silverbeach le Mer Oct 22, 2008 19:40, édité 2 fois.


Aye-Aye
WRInaute passionné
WRInaute passionné
 
Messages: 1917
Inscription: 15 Avr 2005

Message le Mer Oct 22, 2008 18:34

Et cela ?
Code: Tout sélectionner
$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 ?

silverbeach
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 333
Inscription: 20 Juil 2005

Message le Mer Oct 22, 2008 18:55

merci je vais tester ça


Aye-Aye
WRInaute passionné
WRInaute passionné
 
Messages: 1917
Inscription: 15 Avr 2005

Message le Mer Oct 22, 2008 19:20

Tu obtiens ce que tu souhaites ?

silverbeach
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 333
Inscription: 20 Juil 2005

Message le Mer Oct 22, 2008 19:25

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


Aye-Aye
WRInaute passionné
WRInaute passionné
 
Messages: 1917
Inscription: 15 Avr 2005

Message le Mer Oct 22, 2008 19:42

J'allais justement te demander l'erreur retournée par la 1ère requête donnée... pour rectifier. :wink:


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité