Page 1 sur 1
Structure d'un programme
Posté : 12 août 2009, 15:04
par Babou
Bonjour
Voila j'ai un soucis j'ai une base de donnée qui contient des categories avec un champs categorie parent qui correspond a la categorie principal (la categorie au dessus dans la hierarchie).
exemple:
1
1-1
1-1-1
1-1-2
1-2
1-3
2
3
Donc pour 1 la categorie parent est 0 (principal) pour 1-1 c'est 1 pour 1-1-2 c'est 1-1 etc...
Je souhaite que le systeme puisse gerer une hierarchie infinie
mon probleme est que je ne voit pas comment faire la structure du programme qui va me permettre d'afficher les categories dans l'ordre comme ci-dessus en listant ma base de donnée.
Si je listait avec un niveau de categorie de 3 cela serait simple mais en illimite je vois pas du tout.
merci de votre aide.
@++
Re: Structure d'un programme
Posté : 12 août 2009, 15:12
par pascaltje
Hello,
Tu peux t'en sortir avec une représentation d'arbre intervallaire :
http://sqlpro.developpez.com/cours/arborescence/
A+
Pascal
Re: Structure d'un programme
Posté : 12 août 2009, 15:43
par Babou
Merci de ta réponse rapide
C'est une bonne solution mais le probleme est que je n'est pas la main sur la base de donnée et donc je peu rien modifier de celle-ci donc il faut que j'arrive a faire un syteme en php qui me permette de le faire.
@++
Re: Structure d'un programme
Posté : 12 août 2009, 16:04
par enneite
que cherches tu?
A pouvoir triée ta table à l'affichage via une requete SQL?
Par cce que si les id sont de la forme
1
1-1
1-2
1-2-1
2
2-1
ce sont des chaines de caracteres, donc par défault, cela te les affichera dans cet ordre.
non?
...
Norm
Re: Structure d'un programme
Posté : 12 août 2009, 16:10
par Babou
Dans un sens oui je veus les afficher comme cela mais je veus avoir la distinction des categories
exemple
1
1-1
1-2
1-2-1
2
2-1
et sachant que dans la table elle ne sont pas inserer forcement dans cette ordre etant donne qui si on le souhaite on peu modifier le classement par exemple mettre
la categorie 2 sous 1-1.
@++
Re: Structure d'un programme
Posté : 12 août 2009, 16:34
par pascaltje
peux-tu indiquer la structure (champs) de la table, pour que l'on voit ce que l'on peut faire ?
Si tu peux modifier la structure de la table, ajoute la représentation intervallaire, ça facilitera la lecture des données.
Si non, tu peux faire des requêtes en utilisant des alias pour les noms des tables, mais tu ne pourra jamais prévoir la profondeur infinie simplement.
A+
Pascal
Re: Structure d'un programme
Posté : 13 août 2009, 15:37
par Babou
Bonjour
Voici la structure de la table etant donnée qu'elle est gerer par une autre personne je preferait eviter d'y toucher mais si il y a pas le choix je le ferais.
--
-- Structure de la table `categorie`
--
CREATE TABLE `categorie` (
`id` int(250) NOT NULL auto_increment,
`categorie_parent` int(250) NOT NULL,
`nom` char(250) NOT NULL,
`texte` text,
`image` char(250) NOT NULL,
`suspendre` int(250) default NULL,
`ordre` int(250) NOT NULL,
PRIMARY KEY (`id`)
)
voila
merci de votre aide