Aller au contenu

Quel format de table utiliser pour un menu


raph37

Sujets conseillés

Bonjour a tous ! ;)

J'aimerai savoir quel structure de table vous utilisez avec vos menus .

pour le moment je tente ceci qui ne fonctionne pas vraiment car je n'arrive pas a lier correctement les ParentID avec les ID:


CREATE TABLE `menu` (
`ID` int(11) NOT NULL auto_increment,
`ParentID` int(11) default NULL,
`Name` varchar(30) collate utf8_unicode_ci NOT NULL,
`Link` varchar(128) collate utf8_unicode_ci default NULL,
`Class` varchar(50) collate utf8_unicode_ci default NULL,
`Title` varchar(256) collate utf8_unicode_ci default NULL,
UNIQUE KEY `ID` (`ID`),
KEY `ParentID` (`ParentID`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;

ou plus clairement :


-----------------------------------------------------------
ID | ParentID | Name | Link | Class | Title |
-----------------------------------------------------------
1 | 1 | Acueil | # | strong | |
2 | 2 | Outils | # | strong | |
3 | 3 |Matière | # | strong | |
4 | 2 |perceuse| # | medium | |
5 | 4 | foret | # | small | |
6 | 3 | tissu | # | small | |

C'est a ce moment là que je galère , avec la requête SQL :


"SELECT * FROM menu ORDER BY ParentID ASC, ID ASC"

Ce qui me donnera :


-----------------------------------------------------------
ID | ParentID | Name | Link | Class | Title |
-----------------------------------------------------------
1 | 1 | Acueil | # | strong | |
2 | 2 | Outils | # | strong | |
4 | 2 |perceuse| # | medium | |
3 | 3 |Matière | # | strong | |
6 | 3 | tissu | # | small | |
5 | 4 | foret | # | small | |

alors que je voudrai çà :


-----------------------------------------------------------
ID | ParentID | Name | Link | Class | Title |
-----------------------------------------------------------
1 | 1 | Acueil | # | strong | |
2 | 2 | Outils | # | strong | |
4 | 2 |perceuse| # | medium | |
5 | 4 | foret | # | small | |
3 | 3 |Matière | # | strong | |
6 | 3 | tissu | # | small | |

Quelqu'un aurait-il une solution pour corriger mon problème ?

Merci de votre aide ;)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Pour le coup, vu qu'un traitement en PHP sera de toute façon nécessaire pour mettre en forme le tableau de sortie, je te conseille de prendre tous les liens sans forcément trier en SQL, et de retrier correctement en PHP.

Avec une fonction récursive, ça se fera tout seul en quelques lignes, ça sera magique, et pas forcément plus long ! :)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...