Bonjour,
Voila je rencontre un petit problème avec mon code.
J'aimerai créer des sous categories. Le problème c'est que je ne sais pas comment prendre le problème :
Quelqu'un peut-il m'aider pour m'indquer quel est le principe en terme de codage et en terme de bonne pratique.
Merci d'avance pour votre aide.
Décrivez ici votre code ou ce que vous cherchez à faire
Entourez votre code pour bien le mettre en forme
Décrivez ici ce que vous cherchez à obtenir
Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(
Une catégorie peut être reliée à une catégorie (parent_id)
Un post est relié à une catégorie (category_id)
Categories
id
name
slug
parent_id
Posts
id
name
...
category_id
Merci pour ta réponse balsakup.
Mais ce qui voudrais dire que tu ne peux pas rattacher le post à la sous catégorie. Parce que justement ce que j'aimerai faire, c'est au moment de la création du post, rattacher celui-ci à une catégorie (avec le category_id ds la table post), et à une éventuelle sous catégorie (avec le parent_id dans la table Catégorie) mais je n'y suis pas arrivé. c'est pour cela que j'avais envisagé une deuxième clé étrangère dans la table Post => mais dans ce cas comment rattacher la sous catégorie à une catégorie ?
Dans mon exemple catégories et sous-catégories se trouvent dans le même table.
Exemple:
Catégories
1, 'Catégorie principale', 'categorie-principale', NULL
2, 'Sous-catégorie' , 'sous-categorie', 1
Ici, Sous-catégorie est une sous-catégorie de catégorie principale.
C'est comme ça que je comprend ta demande.
Peut être, toi, tu envisages d'avoir plusieurs catégories associées au post, dans ce cas là, tu t'es mal exprimé
Dans ce cas là, tu as besoin de 3 trables
Posts(id, name, slug, content, created)
Categories(id, name, slug, parent_id)
PostsCategories(post_id, category_id)
La table PostsCategories permettra de lier plusieurs catégories au post
Exemple
Posts
1, 'Premier post', 'premier-post', 'Je suis le contenu', '2017-08-04'
Catégories
1, 'Catégorie principale', 'categorie-principale', NULL
2, 'Sous-catégorie' , 'sous-categorie', 1
3, 'Truc', , 'truc', NULL
PostsCatégories
1, 2
1, 3
Ici, la post sera associé à la catégorie 2 et 3
Je sais pas si j'ai été clair, ça aurait été plus facile à expliquer avec un MLD ^^
Non, je n'envisage pas de lier l'article à plusieurs catégories principales et sous-categorie est bien une sous catégorie d'une categorie comme tu l'as indiqué. Pour arriver à cet objectif, et si j'ai bien compris, la table Post devrait ainsi inclure, outre le champ category_id (pour lier le post à une catégorie), un champ parent_id pour lier le Post à une sous-catégorie ?
En relisant ton premier post, j'ai compris que parent_id était dans la table categorie. Mais comment tu fais pour faire la jointure entre la catégorie et la sous catégorie "parent_id" à l'intérieur d'une même table ?
Si parent_id = NULL => C'est une Categorie
Si parent_id = 2 => C'est une Sous catégorie de la catégorie ayant pour ID 2
Et avec ce système, tu peux faire des sous catégorie, des sous sous catégories, des sous sous sous catégorie ( et j'arrete là c'est trop long :p )
Bonjour,
J'ai réfléchi au problème mais j'avoue être un plutôt dépassé techniquement (je suis débutant et la programmation n'est pas mon métier). J'ai compris que :
J'ai créé un controlleur NativesController (pour créer les sous catégories) et j'y ai ajouté un type dans la table pour les identifier. Par contre, je ne vois pas du tout comment, dans une fonction, faire une jointure dans une même table pour les deux éléments (l'id de la catégorie et le parent id de la sous catégorie).
Je poste ci-après mon début de code
Je pense que j'ai écrit n'importe quoi, je revois mon code demain.
Merci d'avance pour votre aide.
Tu n'as pas besoin de faire jointure, en principe elle est déjà faite.
T'as juste à faire des conditions sql (ou/et php) pour dire que tu veux les catégorie ou les sous catégorie ou les deux.
Pouvez vous me dire svp si, avec la première méthode décrite par balsakup, c'est à dire une table commune pour catégorie et parent_id on peut avoir plusieurs sous catégories rattachées à une catégorie principale. Vraiment je galère. Merci pour votre aide.
Roh lala tu le fais exprès ?
| Table Catégorie |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
id | name | sous catégorie
1 | vetement | NULL
2 | chaussure | NULL
3 | chausson | 2
4 | T-shirt | 1
5 | chaussette | 3
Alors ici, nous avons 2 catégories : Vetement et chaussure.
Ainsi que 2 sous catégorie : Chausson et T shirt.
Chausson est une sous catégorie de chaussure et Tshirt de vetement.
Et petit bonus, chaussette est une sous catégorie de chausson.
Voilà Monsieur :)
Pas du tout exprès. ça fait 4 js que je me prends la tête avec ça (je te l'ai dit l'informatique n'est pas mon métier). Donc une categorie peut avoir plusieurs sous catégories (relis bien mes messages).
En reprenant ton exemple, j'ajoute lacets qui sera une deuxième sous catégorie de chaussures
id | name | sous catégorie
1 | vetement | NULL
2 | chaussure | NULL
3 | chausson | 2
4 | T-shirt | 1
5 | chaussette | 3
6 | lacets | 2
Je bloquais car je croyais que la catégorie et la sous catégorie avait obligatoirement le même id.
Bon maintenant , il faut que je contruise la requête. J'en ai pas terminé, mais si c'est bien ça, j'aurais au moins compris le principe.
Il faut bien te dire que l'id est unique et propre à chaque enregistrement. Tu as en effet compris le principe.