Jump to content

Quel format de table utiliser pour un menu


Recommended Posts

Posted

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 ;)

Posted

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 ! :)

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...