Pb Affichage d'un menu avec sous-ruibrique

Répondre
didite49
le 11/01/2005 à 08:41
didite49
Bonjour,

J'ai une table qui gère mon menu, elle contient 3 champs (Menu_ID, Menu_Titre, Menu_Parent).

Je voudrais afficher le contenue de cette table comme suit :
Rubrique
sous-rubrique
Rubrique
sous-rubrique
sous-sous-rubrique
....

Pour cela j'ai fait une fonction récursive :

<? include("connexion.php"); 

function Test($rub)
{
//Creation et envoi des requetes
$Rec_Ssmenu = "SELECT Menu_ID, Menu_Titre, Menu_Parent FROM Menu where Menu_parent=$rub";
$result_Ssmenu = mysql_query($Rec_Ssmenu);

//Affichage de la liste
While($row_Ssmenu = mysql_fetch_row($result_Ssmenu))
{

$Titre_Menu = $row_Ssmenu[1];
$ID_Menu = $row_Ssmenu[0];

echo "<a href=centre.php?IDrub=$ID_Menu target=centre>".$Titre_Menu."</a><br>";

Test($ID_Menu);
}
}

Test(0);

include("deconnexion.php"); ?>


la liste de mes rubriques s'affiche dans l'ordre.

Je suis bloquée pour afficher les sous rubriques décalés. smiley

j'espère avoir été clair et n'avoir rien oublié.

ça fait 2 jours que je me casse la tête dessus et decidement j'ai un grave problème de logique.smiley

Merci d'avance
didite49
zebden
le 11/01/2005 à 09:54
zebden
Indiqué une presentation differente soit en rajoutant un champs level, pour indiquer les niveau ou tu te trouve soit avec l'id du Menu parent.

level 0 => Menu
level 1 => . SS Menu1
level 1 => . SS Menu2
level 0 => Menu

etc etc...
zebdinou pour les intimes / Blog : http://www.zebden.fr
didite49
le 11/01/2005 à 10:58
didite49
Merci je vais tester avec les level et je vous te dis si ça fonctionne
didite49
didite49
le 11/01/2005 à 16:08
didite49
re

dsl mais j'y arrive pas.

Toujours mon problème de logique.

où placer les variables afin de savoir quand la rubrique parente change ?
didite49
zebden
le 11/01/2005 à 16:52
zebden
requete =>
$Rec_Ssmenu = "SELECT Menu_ID, Menu_Titre, Menu_Parent, Menu_Level FROM Menu where Menu_parent=$rub";

Mise en page dans la boucle :
un exemple parmis tant d'autre.
<?php
while($row_Ssmenu = mysql_fetch_array($result_Ssmenu)) {

switch($row_Ssmenu['Menu_Level']) {

case 'level_1' :
echo '<a href="centre.php?IDrub='.$row_Ssmenu['Menu_ID'].'
target="centre">'.$row_Ssmenu['Menu_Titre'].'</a><br>';
break;

case 'level_2':
echo '&nbsp;&nbsp; . <a href="centre.php?IDrub='.$row_Ssmenu['Menu_ID'].'
target="centre">'.$row_Ssmenu['Menu_Titre'].'</a><br>';
break;
}

test($row_Ssmenu['Menu_ID']);
}
?>
zebdinou pour les intimes / Blog : http://www.zebden.fr
didite49
le 11/01/2005 à 17:36
didite49
Le switch supposerai que je sache combien il peut y avoir de level. Alors k'en l'occurence je n'en ai aucune idée puisque ce sera l'administrateur du site qui créera son menu.

Je pensais utilisé une variable par rapport au parent précedent mais je ne sais pas comment la mettre en place et où la placer. enfin si c possible.
didite49
LA GLOBULE
le 11/01/2005 à 17:39
LA GLOBULE
C'est toujours chiant de stocker un arbre dans une table SQL : le problème vient de la profondeur de l'arbre (surtout si cette profondeur est inconnue et pas fixée).

Utilise un fichier XML, ca sera beaucoup plus simple je pense :)
didite49
le 11/01/2005 à 17:54
didite49
Mouais encore faudrait il ke je connaisse le XML. je vais me pencher la dessus dès que j'aurai avancer sur le reste du site sinon je vais me retrouver super à la bourre (j'y suis déjà un peu à vrai dire) smiley

Merci
didite49
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours