Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/06/2011, 13h03   #1
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
Par défaut Fonction récursive : où placer les div ?

Bonjour à tous,

Des heures que je me prends le chou pour afficher le résultat d'une fonction récursive dans un div (à fond rouge), sans qu'il soit doublé, pas fermé...et autres âneries qui plantent l'affichage :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
function recursive($catid){
$sql = "SELECT parent_id, nom FROM categories WHERE id = '".$catid."' ";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);
$ligne = "<div style='background-color:#F00'>Accueil  => ";
 
if($row['parent_id'] == '0'){
	$nom = stripslashes($row['nom']) . ' => ';
	$ligne .= $nom;
}else{
	$nom = stripslashes($row['nom']) . '</div>';
	$ligne = recursive($row['parent_id']) . $nom;
}
return $ligne;
}
Là ça fonctionne si le parent_id existe et que la récursivité est appelée...Mais si la fonction ne tourne qu'une fois parce que la catégorie n'a pas de parent, le div n'est pas fermé et la flèche s'affiche en fin de chaine.
Merci à ceux qui maitrisent les récursives.
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 08h10   #2
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Si tu cherches toujours la solution essaie cela:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
function recursive($catid,$ligne){
$sql = "SELECT parent_id, nom FROM categories WHERE id = '".$catid."' ";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);
if($row['parent_id'] == '0'){
	$nom = stripslashes($row['nom']);
	$ligne = $ligne.$nom;
}else{
	$nom = stripslashes($row['nom']);
	$ligne= recursive($row['parent_id'], $ligne) . $nom;
}
return $ligne;
}
$div=recursive(tonid, "<div style='background-color:#F00'>Accueil  => ")."</div>";
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 08h26   #3
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
Bonjour,

Et bien ne recevant pas de réponse, j'ai continué à chercher et à bidouiller....pour arriver grosso-modo à la même solution que toi.

Mais je te remercie beaucoup d'avoir pris le temps de te pencher sur ce cas.
Bonne journée !
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 08h30   #4
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
De rien, j'ai aussi un post qui reste sans reponse sur la librairie jpgraph, si des fois tu as un peu de connaissance la dedans, je prend volontier
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h28.


 
 
 
 
Partenaires

Hébergement Web