Gestions d'articles contenants des médias (images, vidéos..)

Eléphanteau du PHP | 10 Messages

13 déc. 2011, 17:15

Bonjour,

Toujours dans mes péripéties avec SQL, me voici devant une nouvelle interrogation :mrgreen:
Grâce aux conseils éclairés de moogli, je commence à me rapprocher de quelque chose d'exploitable!
Je peux enfin sélectionner les médias associés à un article, grâce à l'emploi d'une table supplémentaire liant les uns aux autres.

Néanmoins, j'ai maintenant un soucis concernant le récupérage (si si ça se dit) correcte de mes articles.

Auparavant, la requête :

Code : Tout sélectionner

SELECT * FROM `articles` WHERE `section`=\'Graphisme\' ORDER BY `date` DESC LIMIT 0, 5
Me retournait 5 lignes, correspondants aux 5 derniers articles rentrés dans ma base.

Maintenant ma requête :

Code : Tout sélectionner

SELECT articles.*, app_medias.media_id, medias.* FROM `articles` INNER JOIN `app_medias` ON app_medias.article_id = articles.id INNER JOIN `medias` ON medias.id = app_medias.media_id WHERE `section` = "Graphisme" ORDER BY `date` DESC LIMIT 0, 5
Me retourne une ligne par "media.id" retourné (ben oui puisqu'un article peut être lié à plusieurs médias).
Mais moi j'aimerais bien avoir toujours 5 articles de retournés, avec leurs médias :p

Est-ce possible en une seule requête?
Faut il que je sorte d'abord la liste de mes articles, puis pour chaque article une nouvelle requête pour sortir tous les médias qui lui sont associés?
Mais du coup les appels serveur vont se multiplier non?

Merci pour votre aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 déc. 2011, 09:10

Cela dépend du volume des donnes si la table articles, comme on peux le supposer, contient de très gros champ ça va pas être très performant de récupèrer l'article complet autant de fois que tu a d'article.

Par contre tu peux te demander s'il est pertinent de tout afficher en même temp pour les 5 articles !

Si oui, même si cela multiplie les requêtes je me se que la fécule des média dans la boucle de traitement des articles serais le mieux (mais bon 4000 fois la même info énorme VS 5 requêtes de plus faut voir ;) ).

@+
Il en faut peu pour être heureux ......