Categories et sous categories

Ali
Invité n'ayant pas de compte PHPfrance

18 nov. 2006, 17:04

Salut,

Je voudrais faire un script de musique, qui comporte des categories principales, des sous categories et les chansons, par exemple:

Categories principales:
- Francaise
- Anglaise
- Latino

Sous Categories de la categorie principale Francaise:
- Chanteur 1
- Chanteur 2
- Chanteur 3

Les Chansons du chanteur 1:
- Chanson 1
- Chanson 2
- Chanson 3

Je veux utiliser une seule base de donnee pour tout ca, sachant que je vais lister les categories principales, choisir une seule et apres choisir la langue et le chanteur pour que je puisse inserer les chansons de chaque chanteur dans la categorie.

Est ce que vous avez une idee sur ca, le principe de fonctionnement.

Merci

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

19 nov. 2006, 17:42

Est-ce qu'une sous-catégorie peut appartenir à plusieurs catégories ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

19 nov. 2006, 19:37

Quand il faut modéliser une arborescence je travaille en deux tables :

Objets ( id, id_categorie, infos de l'objet )
Categories ( id, id_parent, infos de la catégorie )

Objets.id_categorie représente la catégorie à laquelle appartient l'objet
Categories.id_parent représente la catégorie parente (null s'il s'agit d'une catégorie racine).

Exemple

Code : Tout sélectionner

+- dir1/ +- dir11/ +- obj111 +- obj112 +- obj12 +- dir13/ +- dir2 +- obj21 +- dir22/ Categories +----+-----------+-------+ | id | id_parent | nom | | 1 | null | dir1 | | 2 | null | dir2 | | 11 | 1 | dir11 | | 13 | 1 | dir13 | | 22 | 2 | dir22 | +----+-----------+-------+ Objets +-----+--------------+--------+ | id | id_categorie | nom | | 111 | 11 | obj111 | | 112 | 11 | obj112 | | 12 | 1 | obj12 | | 21 | 2 | obj21 | +-----+--------------+--------+

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

19 nov. 2006, 22:02

Ou on peut faire comme ça : http://sqlpro.developpez.com/cours/arborescence/

Il y a des critères énoncés pour choisir, à voir donc.

ViPHP
ViPHP | 1961 Messages

19 nov. 2006, 22:26

Bonjour,

Attention aux hors ctégories, c'est QQ chose qu'on a tendance à oublier, dans l'exemple du lien 'l'aéroglisseur' n'a pas sa place quelle que soit la solution adoptée.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Ali
Invité n'ayant pas de compte PHPfrance

20 nov. 2006, 17:14

Je m'explique un peu clairement:

Categorie Principale1
- Sous Cat1
--Chanson1.1
--Chanson1.2
--Chanson1.3

- Sous Cat2
--Chanson2.1
--Chanson2.2
--Chanson2.3

- Sous Cat3
--Chanson3.1
--Chanson3.2
--Chanson3.3


Categorie Principale12
Etc..


Chaque groupe est different de l'autre

Merci

Ali
Invité n'ayant pas de compte PHPfrance

23 nov. 2006, 17:10

J'ai fait les tables mais je suis pas sur si c'est bon:

Cat principale:

Code : Tout sélectionner

CREATE TABLE `sawtiyat` ( `id` int(11) NOT NULL auto_increment, `sawtiyat` varchar(50) NOT NULL default '', `date` datetime NOT NULL default '0000-00-00 00:00:00', `icon` varchar(255) NOT NULL default '', `url` varchar(50) NOT NULL default '', `information` text NOT NULL, PRIMARY KEY (`id`) )TYPE=MyISAM;
Les chanteurs:

Code : Tout sélectionner

CREATE TABLE `moughani` ( `id` int(11) NOT NULL auto_increment, `moughani` varchar(50) NOT NULL default '', `date` datetime NOT NULL default '0000-00-00 00:00:00', `icon` varchar(255) NOT NULL default '', `url` varchar(50) NOT NULL default '', `information` text NOT NULL, `sawtiyat_id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ;
Les albums

Code : Tout sélectionner

CREATE TABLE `shareet` ( `id` int(11) NOT NULL auto_increment, `shareet` varchar(50) NOT NULL default '', `date` datetime NOT NULL default '0000-00-00 00:00:00', `icon` varchar(255) NOT NULL default '', `url` varchar(50) NOT NULL default '', `information` text NOT NULL, `moughani_id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ;
Les chansons:

Code : Tout sélectionner

CREATE TABLE `onshouda` ( `id` int(11) NOT NULL auto_increment, `onshouda` varchar(50) NOT NULL default '', `date` datetime NOT NULL default '0000-00-00 00:00:00', `icon` varchar(255) NOT NULL default '', `url` varchar(50) NOT NULL default '', `information` text NOT NULL, `shareet_id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ;
et j'ai fait le lien entre les tables avec les int[/code]

ViPHP
ViPHP | 1961 Messages

23 nov. 2006, 17:32

Bonjour,

Attention aux hors ctégories, c'est QQ chose qu'on a tendance à oublier, dans l'exemple du lien 'l'aéroglisseur' n'a pas sa place quelle que soit la solution adoptée.
Tes artistes n'ont pas le droit aux 'Single' ?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Ali
Invité n'ayant pas de compte PHPfrance

23 nov. 2006, 17:59

Bonjour,

Attention aux hors ctégories, c'est QQ chose qu'on a tendance à oublier, dans l'exemple du lien 'l'aéroglisseur' n'a pas sa place quelle que soit la solution adoptée.
Tes artistes n'ont pas le droit aux 'Single' ?
J'ai pas compris ce ke tu veux dire par "Single"

ViPHP
ViPHP | 1961 Messages

23 nov. 2006, 18:03

Un CD avec un voir deux titre(s).

C'était juste un exemple, mais on peux aussi penser aux DVD's de concerts, etc...
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Ali
Invité n'ayant pas de compte PHPfrance

23 nov. 2006, 18:05

Un CD avec un voir deux titre(s).

C'était juste un exemple, mais on peux aussi penser aux DVD's de concerts, etc...
Chaque Album est different de l'autre

ViPHP
ViPHP | 1961 Messages

23 nov. 2006, 18:22

Re,

Disons que moi je ne considère pas un Single comme un Album ni un DVD-concert.

Si je vais dans un site pour chercher un Single, jamais il ne me viendrait à l'idée d'aller voir dans la rubrique Album (c'est pas un album que je cherche).
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Ali
Invité n'ayant pas de compte PHPfrance

23 nov. 2006, 18:33

Re,

Disons que moi je ne considère pas un Single comme un Album ni un DVD-concert.

Si je vais dans un site pour chercher un Single, jamais il ne me viendrait à l'idée d'aller voir dans la rubrique Album (c'est pas un album que je cherche).
Si tu cherches une chanson, tu dois choisir le chanteur, et l'album (ya des chansons), par exemple:


<a href="chamteur1.htm">chanteur1</a>

Quand il valide sur chanteur 1, le menu suivant apparait:

Album1
- chanson1
- chanson2
- chanson3
- chanson4

Album2
- chanson1
- chanson2
- chanson3
- chanson4
- chanson5

Etc...

ViPHP
ViPHP | 1961 Messages

23 nov. 2006, 18:37

Re,
Si tu cherches une chanson, tu dois choisir le chanteur, et l'album (ya des chansons)
Je ne cherche pas une chanson, mais un Single.

J'entends souvent dans les pubs 'Le dernier Single de ... est dans les backs'
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

27 nov. 2006, 12:38

Un single, un live, etc... Est toujours géré en interne comme n'importe quel autre album, avec un titre, un artiste, une date de parution, un éditeur toussa toussa.

Libre au concepteur après d'ajouter un champ "type d'album" par exemple pour différencier les lives des best-of des singles etc...