Blog - Post avec multiples catégories
Bonjour,
Je développe un blog pour m'amuser.
J'ai donc fait une table blog et une table catégories.
A chaques ajout d'un post, une catégorie lui est attribuée, une des catégories qui se trouvent dans la table catégorie. Pour cela j'ai utilisé un champ id_catégorie.
Ca fonctionne très bien si chaque post à 1 seule catégorie, mais si on veux relier un post a plusieurs catégories ca ne joue pas.
Comment puis-je faire le plus simplement.
Au départ je pensais mettre tous les id_catégories bout à bout (1,5,12)
Mais après pour faire des requetes par catégories ca devient compliqué...
Merci de votre aide
A priori, tu cherches à mettre un champ catégorie dans ta table des posts.
Pourquoi ne pas virer ce champ, puis faire une table de liaison entre id_categorie et id_post (avec juste ces deux champs) : comme ca, tu peux avoir pour un post, plusieures catégories.
Houla c'est hard au niveau requete, mais ca semble bien marcher...
merci de l'astuce
Rebonjour,
J'ai obté pour cette solution qui fonctionne bien. A présent j'ai un problème avec une requete dans 2 tables.
Ma table de jointure s'appelle abocat, ensuite j'ai :
categorie et blog
Dans abocat j'ai id_cat et id_blog.
Voilà ma requete qui fonctionne à condition que je n'ai qu'une catégorie assignée et pas plusieures :
SELECT * FROM categories WHERE id=(SELECT id_cat FROM abocat WHERE id_blog=$id_blog)
Comment contrer cela ?
Merci
Malheureux ! Des selcet imbriqués, tu veux la mort de ton MySQL ;)
Une table de jointure, classiquement, ce serait plutôt comme ça qu'on l'utilise :
select * from categories join abocat on categories.id = abocat.id_cat where abocat.id_blog = ?
Mais au fait, que souhaites-tu contrer ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: