Probléme Barre de navigation (Boucle recursive)

Eléphant du PHP | 178 Messages

25 sept. 2008, 18:37

Bonjour a tous,

Ce sujet fait suite a un vieux topic que j'avais posté il y a quelques temps...

J'ai du pour qq temps mettre de coté cette application, ayant un peu de temps je m'y remets ;)

Topic :
http://www.phpfrance.com/forums/viewtop ... highlight=

HyWaN m'avait demandé de voir les tables concernant mon probleme, une image vaux mieux que de long discrours

Image

Mon probleme est le suivant :
J'essai tout simplement besoin de faire une barre de navigation automatique (C'est a dire, si l'utilisateur décide d'ajouter une nouvelle page, la navbarre affiche le titre de la page en cours.)
Exemple
page d'accueil >> Liste des membres >> Détails d'un membre >> Apres détails du membre >> newpage1 >>nepage2 >> etc...

Voici le code que j'utilise :
function recursive($id)
{
        global $connect;
  
    $sql=mysql_query("SELECT  module_id, module_nom, module_dep_module_id FROM gmod_modules 
WHERE module_id='".$id."'");

	$aff_barre ="";	
	
        while ($row_nav = mysql_fetch_array($sql))
        {
		recursive($row_nav["module_dep_module_id"]);
		$aff_barre.= " » ".stripslashes($row_nav["module_nom"]);
		//echo stripslashes($row_nav["module_nom"]);
	
	
	} 
 		
echo $aff_barre;
return $aff_barre;

}

function barre_navigation($type_url, $nav_id)
{
global $cnx, $base_cnx, $template, $lang;


	$template->set_filenames(array('barr_nav' => 'barrenav.tpl'));
			
			$template->assign_vars(array(
				'NAV_INDEX' => style_css(0,0,1)
				));


if ($type_url == "menu")
{		

	if (empty($nav_id))
	{
	$nav_id = 1; //page d'accueil
	}
	
mysql_select_db($base_cnx,$cnx);
$sql_nav = mysql_query("SELECT menu_id, menu_nom FROM gmod_menu WHERE menu_id='".$nav_id."'");
$row_nav = mysql_fetch_array($sql_nav);
session_unset();
$_SESSION['menu_id'] = $row_nav['menu_id'];	
$_SESSION['menu_nom'] = stripslashes($row_nav['menu_nom']);

$nav_module_id ="";
$nav_module_nom ="";


}


if ($type_url == "module")
{
$nav_module_id ="";
$nav_module_nom = recursive($nav_id);

}


	$template->assign_vars( array(
		'NAV_MENU_ID' => $_SESSION['menu_id'],
		'NAV_MENU_NOM' => " » ".$_SESSION['menu_nom'],
		'NAV_MODULE_ID' => $nav_module_id,
		'NAV_MODULE_NOM' => $nav_module_nom
		));
	//echo $nav_module_nom;
	
	
	$template->assign_var_from_handle('INCLUDE_BARRE_NAV', 'barr_nav');

}
Mon
 echo $aff_barre;
dans ma
function recursive($id)
Fonction tres bien...mais quand j'appel ma fonction pour le site ca ne fonctionne pas..
Je suis sure que c'est tout con mais je ne trouve pas..
J'espere etre clair !!!!!
Si vous avez une idée..
D'avance merci !!

Eléphant du PHP | 451 Messages

25 sept. 2008, 19:21

Bonsoir,

Pour appeler ta fonction il faut faire:
echo recursive($id);
Quand tu appel une fonction il ne faut jamais mettre ce que tu à mit c'est à dire:
function recursive($id)
Essaye avec ça et dis nous se qui bloque après.

Voilà j'espère avoir répondu à une petite question de ton problème.

Eléphant du PHP | 178 Messages

25 sept. 2008, 19:41

Merci, mais ce n'est pas ca !!!!

Quand j'appel mes fonction tout baigne sauf que le premier echo dans la premiere fonction
echo $aff_barre; 
M'affiche, ce que je souhaite avoir, c'est a dire :

Code : Tout sélectionner

» Liste des membres » Détails du membre » Apr�s D�tails Membres
mais quand j'appel ma seconde fonction il m'affiche :

Code : Tout sélectionner

» Liste des membres » Apr�s D�tails Membres
il manque une etape, (Détails du membre » ) il n'y a que le nom de la derniere page....

(J'aimerais :

Code : Tout sélectionner

» Liste des membres » Détails du membre » Apr�s D�tails Membres » prochaine page » prochaine page2 etc....
)