Bonjour,
J'ai une petite question à vous poser, je ne sais pas ce qu'il est mieux de faire d'un point de vue performances pour un système tout simple de news qui peuvent être rattachées à des images.
J'ai une table contenant mes news (ID, TITRE, TEXTE)
ainsi qu'une table contenant mes images (ID, URL, ID_NEWS)
Actuellement je fais comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $retour_messages=mysql_query("SELECT * FROM news "); while($result=mysql_fetch_assoc($retour_messages)) { $aff.='<article>'; $aff.='<p>'.getdateSQL($result["PDATE"]).' - <strong>'.$result["TITRE"].'</strong></p>'; $aff.=$result["TEXTE"]; $r=mysql_query("SELECT * FROM news_images WHERE ID_GALERIE=".$result["ID"].""); while($img=mysql_fetch_assoc($r)) { $aff.='<img src="upload/news/'.$img["URL"].'">'; } $aff.='</article>'; }
D'un niveau performances, je me suis dit que je pourrai utiliser une jointure pour éviter la boucle dans la boucle…
Voici donc ma requête :
Seulement avec ce code j'ai uniquement la première image qui s'affiche, il faudrait boucler sur les images en ayant le total du nombre de résultats trouvé ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $retour_messages=mysql_query(" SELECT * FROM news JOIN news_images ON news.ID = news_images.ID_GALERIE WHERE news.PUBLIE=1 GROUP BY news.ID"); while($result=mysql_fetch_assoc($retour_messages)) { $aff.='<article>'; $aff.='<p>'.getdateSQL($result["PDATE"]).' - <strong>'.$result["TITRE"].'</strong></p>'; $aff.=$result["TEXTE"]; $aff.='<img src="upload/news/'.$result["URL"].'">'; $aff.='</article>'; }
Quelle serait selon vous la meilleure solution d'un point de vue performances ?
ça serait intéressant d'avoir votre avis à ce sujet,
D'avance merci et salutations
Partager