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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Gestions d'articles contenants des médias (images, vidéos..)

Re: Gestions d'articles contenants des médias (images, vidéo

par moogli » 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 ;) ).

@+

Re: Gestions d'articles contenants des médias (images, vidéo

par The_Moye » 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.

Re: Gestions d'articles contenants des médias (images, vidéo

par The_Moye » 10 déc. 2011, 16:03

D'accord, merci moogli, c'est tout à fait ça ;)

Re: Gestions d'articles contenants des médias (images, vidéo

par moogli » 10 déc. 2011, 15:57

ca depend de la relation entre les tables :)
si tu peux avoir plusieurs media par article oui une troisième table di, id article, idmedia :)



@+

Re: Gestions d'articles contenants des médias (images, vidéo

par The_Moye » 10 déc. 2011, 15:53

Bonjour, c'est encore moi !

En fait, il me faut peut être une table entre les deux non?
Une table qui ferait le lien entre ma table Articles et ma table Medias ?

Re: Gestions d'articles contenants des médias (images, vidéo

par The_Moye » 06 déc. 2011, 19:42

Bonjour Bonjour,

Désolé pour le temps de réponse moogli, j'ai été pas mal occupé ailleurs :roll:
Mais me voici de retour, et bien décidé à terminer la refonte de mon site!

Je me suis donc relancer dans SQL, en écoutant tes précieux conseils.
Mais voilà qu'une nouvelle question me taraude l'esprit concernant la façon de récupérer les infos de mes médias (type, source...) pour un article donné.

Je pensais bêtement utiliser une requête imbriquée :

Code : Tout sélectionner

SELECT medias.source, medias.type FROM medias WHERE medias.id IN (SELECT articles.medias FROM articles WHERE articles.id = 2)
Mais ça ne fonctionne pas, enfin la requête me retourne seulement le premier élément de la liste des médias pour cet article.
J'imagine que ça vient de la façon dont je stock cette liste de médias (un champs TEXT contenant par exemple "2,3,4". 2, 3 et 4 faisant référence aux id de médias associés.) et / ou le non traitement du retour de ma sous requête.

Ma sous requête retourne (j'imagine) une chaine de caractère et ma requête principale attend une liste d'INT non?
Est-ce que SQL peut faire la conversion?
Est-ce que je m'y prends (encore) mal? 8-|

Re: Gestions d'articles contenants des médias (images, vidéo

par moogli » 11 nov. 2011, 14:30

hum ça depend des relations entre les tables il peux falloir une table en plus

j'ai modifié le mcd au dessus en conséquence la relation tagsarticle sera une tables qui contiendras la idarticle et idtags afin d'avoir plusieurs tag par articles, sans démultiplier les tags !


@+

Re: Gestions d'articles contenants des médias (images, vidéo

par The_Moye » 11 nov. 2011, 13:47

Salut moogli,

Ah oui oui oui, c'est beaucoup plus clair comme ça !
Du coup, j'imagine qu'il va me falloir une table de plus, contenant les tags associés aux articles.

Re: Gestions d'articles contenants des médias (images, vidéo

par moogli » 11 nov. 2011, 13:23

il s'agit la de l'application des première forme normale qui réclame, entre autre l'unicité d'une information (pertinente).

donc tu ne peux avoir une table avec 48 fois 'dvd' ou 'cd' 'ou 'image'

Sachant que les recherches sont généralement sensible a la casse tu ne va pas différencier les erreurs du type DVD ou dvd :)

de plus pour changer un type (par exemple de cd à cédérom qui est français) avec ta façon de faire tu va devoir mettre a jour tout les tuples de la table (opération extrêmement gourmande en terme de performance). Avec ce que je te propose tu ne modifie qu'une ligne ;)

la mcd
Image

regarde sur internet les formes normales sql et pour aller avec les jointures :)


@+

Re: Gestions d'articles contenants des médias (images, vidéo

par The_Moye » 10 nov. 2011, 21:17

une pour les type de media, histoire de ne pas avoir de redondance et de truc foireux du genre dvd et DVD :)
Sur ce point, il va falloir éclairer ma lanterne :d

Re: Gestions d'articles contenants des médias (images, vidéo

par moogli » 10 nov. 2011, 21:05

en fait la structure est un poil différentes la

faut trois tables
une pour les articles
une pour les media
une pour les type de media, histoire de ne pas avoir de redondance et de truc foireux du genre dvd et DVD :)

@+

Re: Gestions d'articles contenants des médias (images, vidéo

par The_Moye » 10 nov. 2011, 18:37

Salut moogli, merci pour ta réponse,

J'aimerais pouvoir dissocier les médias associés à un article (images, vidéos, fichier dives et variés à télécharger...), de l'article en lui même.

Au début, j'étais justement parti la dessus :

_ Une table article, contenant le texte de l'article, la sections, sous sections, liste d'ID de médias, tags ...etc,
_ Une table media, contenant, pour chaque média son type, un titre, une alternative (pour les images), une description, sa source... et un ID unique.

Mais je me suis dit qu'il était peut être possible de faire sensiblement la même chose en stockant directement les médias, encadrés par des balises, dans la table article.
Apparemment je me suis trompé ;)
après je ne vois pas trop pourquoi tu ne met pas les elements dans le texte.
J'aimerais les séparer pour plusieurs raisons :

_ Pouvoir ne sortir que le texte sur ma page d'accueil, sans trop mouliner ( :) ),
_ Permettre une recherche par médias (ex : sortir toutes les images de tous les articles, correspondant à un tag),
_ Pouvoir mettre une place une galerie "globale", de toutes les images par exemple.
s'il s'agit de lien tu peux très bien utiliser un truc à la bbcode style comme tu le met dans ton 1er message
Il me faudrait plus que le le lien, du genre une description, un titre, une alternative...
Et après une moulinette qui remplace par la bonne balise (voir les pléthores de parseur bbcode sur le net ;) )
C'est pour ça que j'ai pensé à du XML, en ayant fait un chouilla via JavaScript, je n'aurais pas trop été perdu pour "mouliner" :D


Pour résumer, tu me conseilles de faire comme je le pensais au début?

Une table contenant ma liste d'articles, identifiés par un ID unique, le texte, les tags associés ... - d'autres info - ... la liste des ID des médias associés à l'article,
Une table contenant ma liste de médias, identifiés par un ID unique, le type, la source, le titre ... - d'autres infos -.

Re: Gestions d'articles contenants des médias (images, vidéo

par moogli » 10 nov. 2011, 16:55

non, la c'est défaut de conception !

si tu a plusieurs chose associé à une autre il faut faire deux entités différentes
exemple
des documents relatifs à une news,
une table news
une table documents qui va contenir la clef primaire de la news "comme référence" tu va donc pouvoir insérer dans cette table autant de documents que tu souhaite (quelque soit la nature).

après je ne vois pas trop pourquoi tu ne met pas les elements dans le texte.

s'il s'agit de lien tu peux très bien utiliser un truc à la bbcode style comme tu le met dans ton 1er message
[video]LienVideo[/video]
[video]LienVideo[/video]
[images]LienImage01,LienImage02,LienImage03[/images]
Et après une moulinette qui remplace par la bonne balise (voir les pléthores de parseur bbcode sur le net ;) )

dit nous où tu bloque sur ce système !

@+

Re: Gestions d'articles contenants des médias (images, vidéo

par The_Moye » 10 nov. 2011, 15:55

Bonjour tout le monde, c'est encore moi !

Je suis en train de me poser la question suivante : et en XML?

Est-il valable de stocker du XML dans une Base de Données, qui serait exploité par PHP (genre via XMLReader) ?

Ça me permettrait de stocker les références vers mes médias d'une manière un peu plus chouette, genre :

Code : Tout sélectionner

<Media type="Gallerie"> <Image source="" alt="" link="" description=""/> <Image source="" alt="" link="" description=""/> <Image source="" alt="" link="" description=""/> <Image source="" alt="" link="" description=""/> </Media> <Media type="Video"> <Video source="" description=""/> </Media>
Mais ça ne résout pas le problème du "comment insérer tel média à tel endroit dans mon article".

Des idées?

Re: Gestions d'articles contenants des médias (images, vidéo

par The_Moye » 08 nov. 2011, 15:56

Salut moogli, merci pour ta réponse !
1/ tu ne devrais pas avoir de html dans la table, car la c'est pour du html, mais demain on te demande un autre format tu fait comment ? (génération de pdf, bon tu me dira y a html2pdf, mais c'et du latex ? du texte tout bete etc etc).
C'était un premier jet, étant le patron sur mon site, je sais par avance que je n'aurais que du HTML à traiter ici. :)
Mais si tu as mieux à me proposer, dans la manière de gérer le contenu de mes articles, je suis ouvert !
2/ pourquoi ne pas mettre les "media" dans le texte (au final c'est bbcode style ton affaire ;)
Comme précisé plus tôt, ça m'évite d'avoir à traiter le contenu de mon champs Texte lorsque je n'ai besoin d'afficher que mon texte, sans les médias.
Puis ça me permettra par la suite de créer rapidement une page listant tous les médias relatifs à une recherche.
Mais là encore, si tu as mieux à proposer, je suis là pour ça ! :mrgreen: