2010-12-15 158 views
0

Je travaille sur un système de menu piloté par les données en PHP/MySQL. Je ne peux pas comprendre comment supprimer des éléments de menu sans en laisser certains orphelins.PHP Menu - Comment supprimer récursivement parent et enfant

Tous les éléments de menu de niveau supérieur ont une valeur d'ID parent zéro (0) indiquant qu'ils sont de niveau supérieur. Ma grille affiche tous les menus, les éléments de niveau supérieur et de sous-menu et permet la sélection multiple pour la suppression.

Le problème est que si l'un des éléments sélectionnés dans le gridview pour suppression est un élément de menu de niveau supérieur, tous les sous-menus qui le composent deviendront orphelins.

Quelle est la logique générale que je dois implémenter?

Répondre

1

Supprimez simplement les éléments enfants lorsque vous supprimez un élément. Si vous avez seulement 2 niveaux de profondeur, cela ne devrait pas poser trop de problèmes. Si vous pouvez avoir des niveaux X, vous devrez supprimer récursivement chaque élément enfant pour chaque élément que vous supprimez.

+0

Mon menu permet des niveaux illimités. Il peut donc y avoir plusieurs éléments de menu parent ayant des éléments enfants. –

+0

Pourriez-vous fournir un exemple simplifié pour les niveaux x? –