Bonjour,

Voila plusieurs jours que je m'efforce à faire une arborescence en MYsql php sans trouver la bonne requette SELECT à taper :

ci dessous le schéma se base :



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE TABLE IF NOT EXISTS `rubrique` (
  `ID_RUBRIQUE` bigint(4) NOT NULL AUTO_INCREMENT,
  `INTITULE` varchar(255) NOT NULL,
  `DESCRIPTION` text,
  `KEYWORD` varchar(255) DEFAULT NULL,
  `URL` varchar(255) NOT NULL,
  `ETAT` int(11) NOT NULL,
  PRIMARY KEY (`ID_RUBRIQUE`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;
 
CREATE TABLE IF NOT EXISTS `contien` (
  `ID_RUBRIQUE` bigint(4) NOT NULL,
  `ID_RUBRIQUE_1` bigint(4) NOT NULL,
  `NIVEAUX` int(11) NOT NULL,
  `PLACE` int(11) DEFAULT NULL
  PRIMARY KEY (`ID_RUBRIQUE`,`ID_RUBRIQUE_1`),
  KEY `I_FK_CONTIEN_RUBRIQUE` (`ID_RUBRIQUE`),
  KEY `I_FK_CONTIEN_RUBRIQUE1` (`ID_RUBRIQUE_1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


et donc voila ce que jessaye de faire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT rubrique.ID_RUBRIQUE,contien.ID_RUBRIQUE_1, INTITULE, contien.PLACE,contien.NIVEAUX, ETAT
FROM rubrique, contien
WHERE rubrique.ID_RUBRIQUE = contien.ID_RUBRIQUE
AND rubrique.ETAT >=1
ORDER BY contien.ID_RUBRIQUE_1,contien.NIVEAUX ASC


Cette requette fonctionne pour les rubrique de niveaux 1 et 2 si j'ai une rubrique de niveau 3 ben elle ne se positionne pas au dessous de ca categorie parente.

donc c pas bon.
Si quelqu'un a une idée meme s'il faut faire le traitement en php je suis preneur

Merci de votre compréhension

Cordialment