begin process at 2012 02 15 22:28:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

compter les fils par niveaux dans un arbre ordonnée


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

compter les fils par niveaux dans un arbre ordonnée

samedi 15 novembre 2008 à 19:13:47 | compter les fils par niveaux dans un arbre ordonnée

paroleparleet

Bonsoir à tous,

J'aimerais que vous puissiez m'aider à resoudre un problème que j'ai rencontré dans mon projet.

je dois compter le nombre de fils par niveau dans un arbre ordonné: l'arbre se presente de la façon suivante,  avant de la presentée j'aimerais vous signifier que je me sert d'une base MySql pour traiter mes informations.

mon fichier se présente comme ceci:

table_element (id_element,code_element,nom_element,code_parent_element)

                                       1
                    /                  |            \
                 /                     |                  \
             /                         |                      \
         10                         11                       12
      /    |    \                  /    |     \           /        |     \
100  101 102        110   111  112    120  121  122

------

je vous prie de m'aider j'ai besoin de cela le plutôt possible.
samedi 15 novembre 2008 à 20:53:29 | Re : compter les fils par niveaux dans un arbre ordonnée

nhervagault

Administrateur CodeS-SourceS
Salut

Quel est le resultat attendu ?
Il faut peut etre faire du parcours recursif?

Bon coding
samedi 15 novembre 2008 à 21:24:24 | Re : compter les fils par niveaux dans un arbre ordonnée

paroleparleet

Je vous remercie pour ta réponse.J'ai essayé la recurcivité mais je ne sais comment procéder pour afficher :

 Total : ........    Niveau :.......

Voici mon code qui me sert à afficher le contenu de ma base :


<?php
 #Paramétres de configuration

 $hostname = "localhost";
 $database = "test_arbre";
 $Username = "root";
 $password = "";

 $Dataconnection = mysql_connect($hostname, $Username, $password) or die(mysql_error());

 // paramétre mysql et chargement de la classe bdd.
mysql_select_db($database, $Dataconnection);

?>

<html>
<head>
<title>Document sans nom</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.label {
 font-family: "Trebuchet MS", "Tw Cen MT", "Tw Cen MT Condensed";
 font-weight: bold;
 color: #FFFFFF;
 font-size: small;
}
.label1 {
 font-family: "Trebuchet MS", "Tw Cen MT", "Tw Cen MT Condensed";
 font-weight: bold;
 color: #FF0000;
 font-size: small;
}
.label2 {
 font-family: "Trebuchet MS", "Tw Cen MT", "Tw Cen MT Condensed";
 font-weight: bold;
 color: #000000;
 font-size: small;
}
-->
</style>
</head>
<BODY leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">
<form name="forgotpass" method="post" action="">
  <table width="400" border="0" bgcolor="#FFCC66" align="center" cellspacing="5" cellpadding="5">
       <td width="200" align="right" class="label2">Selectionnez le Pseudo :</td>
       <td width="100">
          <?
              $result=mysql_query("select nom_exemple
                                   from tab_exemple order by id_exemple",$Dataconnection);
              echo"<select name=\"usernam\">";
              while (list($affichage)=mysql_fetch_array($result)){
                echo"<option>$affichage</option>";
              }
              echo"</select>";
          ?>
       </td>
       <td width="100"><input name="afficher" type="submit" value="Afficher >>" style=" BORDER-RIGHT: #999999 1px solid;
            BORDER-TOP: #999999 1px solid;
            FONT-SIZE: 11px;
            BACKGROUND: #336699;
            BORDER-LEFT: #999999 1px solid;
            COLOR: #cc3300;BORDER-BOTTOM: #999999 1px solid;
            FONT-FAMILY: Helvetica;
            TEXT-DECORATION: none">
       </td>
    </tr>

  </table>
</form>
</body>

<?php

     if(isset($_POST['afficher'])){

        $nom = $_POST['usernam'];

        $result_global=mysql_query("select code_exemple
                                    from tab_exemple
                                    where nom_exemple='$nom'"
                                  );
        list($code_depart)=mysql_fetch_array($result_global);
              
        echo"Code Pere : $code_depart<br>";

        affichage_branche($code_depart);

     }

    function affichage_branche($code_depart) {

       $niveau1 =0;

       $nbfils =0;

       $nbfils1 =0;
      
       $num1 =0;

       $result_query = mysql_query("select code_noeud,niveau_noeud
                                    from tab_noeud
                                    where parent_noeud='$code_depart'"
                                  );

       while (list($code,$niveau)=mysql_fetch_array($result_query)) {

         $num = mysql_num_rows($result_query);

         $tab=str_repeat(".",$niveau*4);
      
         echo "<li>".$tab."Code : ".$code." Nbre Fils : ".$num." Niveau :".$niveau;

         affichage_branche($code);

         $num1 = $num;

         $niveau1 = $niveau;

       }

       if($niveau1 == $niveau){}
       else{

           $tab=str_repeat(".",$niveau1*4);

           echo "<br><li>$tab T Nbre Fils : ".$num1." Niveau :".$niveau1;
          
       }

    }

?>

mercredi 19 novembre 2008 à 00:35:49 | Re : compter les fils par niveaux dans un arbre ordonnée

malalam

Administrateur CodeS-SourceS
Hello,

une requête du genre :

SELECT c.code_element, count(*)
FROM codes
INNER JOIN codes c2 ON c2.code_element_parent = c.code_element
GROUP BY c.code_element



Cette discussion est classée dans : arbre, compter, element, fils, niveaux


Répondre à ce message

Sujets en rapport avec ce message

de l'arbre n-aire en C à php [ par am1ra2 ] bonjour j'ai trouvé ce code qui répond à mes besoins sur l'arbre n'aire mais il est en C si quelqu'un peut m'aider à le déveloper en php puisque j'ai Calendrier dynamique [ par tgr74 ] Salut à tous j'ai besoin d'aide pour l'élaboration d'une news défilante. Après recherche sur le site, je suis tombé sur ce script : news.php 1 2 fun Compter des fichiers [ par leoncap ] Bonjour, j'utilise le script suivant pour compter le nombre de fichiers qu'il y a dans un dossier. Il fonctionne très bien sauf pour 0. Quand le dossi afficher de combobox [ par sidalilo ] bonjour tout le monde.... lorsque je selectionne un element de combobox je veux l'element affiché automatiquement(onchange sur combobox). merci pour Programmer un arbre de jeu pour un puissance 4 [ par bayer59 ] Bonjour, J'ai actuellement un projet de puissance 4 avec intelligence artificielle et interface graphique à réaliser en C. Le programme tourne en mod tableau avec boucle for [ par jagogordonne ] Bonjour à tous, Je pose mon problème : j'ai une page saisie_abatage ou je récupère des données venant d'une table lot, ensuite je rentre la date d'a Arbre de possibilité [ par inwebo ] Bonjour à tous, Je suis à la recherche d'information pour modéliser un arbre de possibilités. Auriez vous de la documentation, articles, des mots cle Erreur xml [ par dalichar ] Bonjour, j'ai un fichier xml dans lequel j'arrive à ajouter des noeuds sans problèmes, mais quand je veux les supprimer c'est une autre histoire. mo [Deplacé --> PHP+ renommé] Problème sur formulaire de login [ par yabi24 ] <ti compter le nombre de visiteur sur un site avec php [ par fijou12 ] bonjour, j'ai un probleme au niveau d'un programme qui calcule le nombre de vvisiteurs sur un site , bob le programme marche tres bien et il calcule


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,622 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales