IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonction récursive : où placer les div ? [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Si tu cherches toujours la solution essaie cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    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 !

  4. #4
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    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) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Les fonctions récursives en assembleur
    Par AkiyamaS dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 30/12/2012, 22h00
  2. Les Fonctions récursives
    Par RondoudouBooleen dans le forum Fortran
    Réponses: 2
    Dernier message: 27/03/2012, 21h07
  3. fonction récursive pour générer les nbrs sur n bits
    Par simpatico dans le forum Débuter
    Réponses: 6
    Dernier message: 18/11/2011, 09h06
  4. Réponses: 1
    Dernier message: 09/06/2010, 22h04
  5. Réponses: 4
    Dernier message: 28/12/2008, 01h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo