begin process at 2012 05 31 11:10:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

TreeView à partir d'une table MySQL


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

TreeView à partir d'une table MySQL

mercredi 2 avril 2008 à 18:00:15 | TreeView à partir d'une table MySQL

crazygogo

Bonjour à tous,
j'ai cherché pas mal sur ce site et sur le web mais pas moyen de trouver la solution à mon problème (pourtant ça me semble être un classique !) :

j'ai une table MySQL qui contient de quoi faire une arborescence:

CREATE TABLE `gestion_documentaire_dossiers` (
  `dossier_id` int(10) unsigned NOT NULL auto_increment,
  `dossier_parent_id` int(10) unsigned default NULL,
  `dossier_nom` varchar(200) NOT NULL,
  PRIMARY KEY  (`dossier_id`)
);

INSERT INTO `gestion_documentaire_dossiers` (`dossier_id`,`dossier_parent_id`,`dossier_nom`) VALUES
 (1,NULL,'Contrats'),
 (2,NULL,'Lettres'),
 (3,NULL,'Autres'),
 (4,1,'Simon'),
 (5,1,'Marcel'),
 (6,1,'Maria'),
 (7,3,'Simon'),
 (8,3,'Maria'),
 (9,3,'Marcel'),
 (10,4,'15 mars 2008'),
 (11,4,'12 janvier 2008');



si le dossier est à la racine, dossier_parent_id est NULL sinon dossier_parent_id contient le dossier_id du dossier dans lequel il se trouve

et la c'est le drame !!! je n'arrive pas à récupérer tout cela de manière 'propre'...
par exemple dans un tableau php multidomensionnel représentant l'arborescence...

j'ai essayé la récursivité, les foreach etc... mais pas moyen !!! je suis limité à PHP 4.3.11 par mon hébergeur (donc je ne dispose pas de toutes les fonctionnalités de PHP5)

toute aide sera la bienvenue !!

Merci

Crazygogo
mercredi 2 avril 2008 à 19:40:53 | Re : TreeView à partir d'une table MySQL

neigedhiver

Salut,

Pour récupérer tout ça dans un tableau php propre, c'est pas spécialement difficile. Le plus difficile, c'est d'exploiter ça ensuite lors de l'affichage (et ça reste pas compliqué).
La solution que j'ai à te proposer n'est pas super optimisée, parce qu'elle parcours 2 fois l'arborescence. En même temps, j'y réfléchis et je ne vois pas vraiment comment faire pour ne la parcourir qu'une seule fois... (peut-être avec une sous-requête)


Au lieu de NULL comme valeur d'id parent pour les éléments à la racine, je préfère utiliser 0 : l'autoincrement commence de toute façon à 1, donc c'est une valeur qui n'existera pas pour id_parent dans la table. L'avantage est que la valeur est directement utilisable dans un tableau PHP, et le résultat concernant le traitement est strictement le même.

Essaie un truc comme ça :

$sql = 'SELECT dossier_id, dossier_parent_id, dossier_nom
FROM gestion_documentaire_dossiers
ORDER BY dossier_parent_id, dossier_id;';

if ($resultat = mysql_query($sql)) {
if (mysql_num_rows($resultat) > 0) {
while($ligne = mysql_fetch_assoc($resultat)) {
$tree[$ligne['dossier_parent_id']][$ligne['dossier_id']] = $ligne['dossier_nom'];
}
}
else {
// Aucun résultat
}
}

function affiche_tree(array $tree, $id) {
static $niveau = -1;
$niveau++;
foreach ($tree[$id] as $id_enfant => $nom_enfant) {
echo str_repeat("\t", $niveau) . $id_enfant . ' - ' . $nom_enfant . "\n";
if (is_array($tree[$id_enfant])) {
affiche_tree($tree, $id_enfant);
}
}
$niveau--;
}

header('Content-type: text/plain');
affiche_tree($tree, 0);


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
mercredi 2 avril 2008 à 19:46:14 | Re : TreeView à partir d'une table MySQL

coucou747

Administrateur CodeS-SourceS
salut

en fait, c'est pas que tu parcours deux fois l'arbo, le probleme, c'est que tu parcours recursivement l'arbo... ce qui veut dire que si tu as 100 champs sur 10 niveaux, tu vas parourrir 100 * 10 fois ton arbo.

t'as un autre format de tables pour faire des arborescences : http://www.phpcs.com/codes/ARBORESCENCE_45943.aspx

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
jeudi 3 avril 2008 à 17:50:52 | Re : TreeView à partir d'une table MySQL

crazygogo

neigedhiver merci pour ta réponse rapide et pour ton script. il me donne un tableau "à plat"...
j'ai besoin de récupérer un tableau php multidimensionnel représentant l'arborescence, je ne sais pas si c'est possible ?....

coucou747 la représentation intervallaire est intéressante mais ça m'a l'air un peu compliqué pour ce que je veux faire... néanmoins merci pour ta réponse et je garde ton lien sous la main car le concept de parcours d'arbre est très intéressant !



Crazygogo
jeudi 3 avril 2008 à 18:58:45 | Re : TreeView à partir d'une table MySQL

crazygogo

Bon je sais que c'est pas du bon code, optimisé, bien codé et tout et tout mais c'est un bricolage que j'essaie de faire pour créer mon tableau !!! alors pour vous montrer ou j'en suis, je met ci-dessous mon code, puis les informations de debugage qu'il affiche...

tout en bas de ces infos de debug : tree2 = le tableau que je parviens à générer : il est pas mal mais un seul niveau d'arbo seulement alors que le deuxieme niveau devrait être affecté d'après les infos de debug par la fonction rempliBranche (la même qui me rempli bien mon premier niveau !!)
la j'avoue que je suis un peu pommé !!!....


CODE :
// On récupère tous les dossier et sous-dossiers de l'utilisateur :
$tree1 = array();
$sql = 'SELECT *
        FROM gestion_documentaire_dossiers
        ORDER BY dossier_nom;';
$DB_CX->DbQuery($sql);
while ($enr = $DB_CX->DbNextRow()) {
    $dossier_parent_id = $enr['dossier_parent_id'];
    if(trim($dossier_parent_id=='')){
        $dossier_parent_id = 0;
    }
    $tree1[] =
    array(
        'dossier_id' => $enr['dossier_id'],
        'dossier_parent_id' => $dossier_parent_id,
        'dossier_nom' => $enr['dossier_nom']
    );
}

$cpt = 0;
$tree2 = array();
$dossiersDejaCrees = array();
foreach ($tree1 as $id => $dossier) {
    if($dossier['dossier_parent_id']==0){
        $dossiersDejaCrees[] = $dossier['dossier_id'];
        $tree2[$cpt] = $dossier;
        unset($tree1[$id]);
        $tree2[$cpt]['dossier_fils'] = array();
        $cpt ++;
    }
}



echo('<hr><hr><hr><pre>tree1 : ');
print_r($tree1);
echo('</pre>');
echo('<hr><hr><hr><pre>tree2 : ');
print_r($tree2);
echo('</pre><hr><hr><hr>');


// Tant que le tree1 est pas vide (on efface ses entrées au fur et a mesure qu'on les insère dans tree2)
while(count($tree1)>0){
    foreach ($tree1 as $id => $dossier) {
        if(in_array($dossier['dossier_parent_id'],$dossiersDejaCrees)){
            // Le dossier pere de ce dossier a déja été créé dans tree2, on peut donc lancer les recherches...
            $dossier['dossier_fils'] = array();
            chercheIdDansTree($dossier['dossier_parent_id'],$dossier,$tree2,$id);
        }
    }
}


function chercheIdDansTree($id_a_trouver,$valeur_a_donner,&$tableau_a_explorer,$id_a_effacer_dans_tree1){
    global $tree1,$dossiersDejaCrees;
   
    echo("<hr><strong>chercheIdDansTree(id_a_trouver=$id_a_trouver,valeur_a_donner=$valeur_a_donner,&tableau_a_explorer=$tableau_a_explorer,id_a_effacer_dans_tree1=$id_a_effacer_dans_tree1)</strong><br>");
    echo("<pre>valeur_a_donner : ");
    print_r($valeur_a_donner);
    echo("</pre>");
    echo("<pre>tableau_a_explorer : ");
    print_r($tableau_a_explorer);
    echo("</pre>");
   
    foreach ($tableau_a_explorer as $id => $dossier) {
       
        echo('<blockquote><strong>foreach ($tableau_a_explorer as $id => $dossier)</strong>');
        echo('<pre>id : ');
        print_r($id);
        echo('</pre>');
        echo('<pre>dossier : ');
        print_r($dossier);
        echo('</pre>');
       
        if(isset($dossier['dossier_id'])){
       
            echo('$dossier[\'dossier_id\'] is set : '.$dossier['dossier_id'].'<br>');
       
            if($dossier['dossier_id']==$id_a_trouver){
           
                echo('$dossier[\'dossier_id\']==$id_a_trouver<br>');
           
                rempliBranche($tableau_a_explorer[$id],'dossier_fils',$valeur_a_donner);
                unset($tree1[$id_a_effacer_dans_tree1]);
                $dossiersDejaCrees[] = $id_a_effacer_dans_tree1;
               
                echo('unset($tree1[$id_a_effacer_dans_tree1='.$id_a_effacer_dans_tree1.']);<br>');
               
                break;
               
            }
            elseif(count($dossier['dossier_fils'])>0){
                chercheIdDansTree($id_a_trouver,$valeur_a_donner,$dossier['dossier_fils'],$id_a_effacer_dans_tree1);
            }
        }
        else{
            if(is_array($dossier)){
                chercheIdDansTree($id_a_trouver,$valeur_a_donner,$dossier,$id_a_effacer_dans_tree1);
            }
        }
       
        echo('</blockquote>');
       
    }
}


function rempliBranche(&$branche,$cle,$valeur){
    global $tree2;

    echo("<strong>rempliBranche(&branche=$branche,cle=$cle,valeur=$valeur)</strong>");
    echo('<pre>branche : ');
    print_r($branche);
    echo('</pre>');
    echo('<pre>valeur : ');
    print_r($valeur);
    echo('</pre>');

    $branche[$cle][] = $valeur;
   
    echo('<pre>**** APRES **** : branche : ');
    print_r($branche);
    echo('</pre>');
    echo('<pre>**** APRES **** : tree2 : ');
    print_r($tree2);
    echo('</pre>');
}




echo('<hr><hr><hr><pre>tree2 : ');
print_r($tree2);
echo('</pre>');
echo('<hr><hr><hr><pre>tree1 : ');
print_r($tree1);
echo('</pre><hr><hr><hr>');


DEBUG :
tree1 : Array
(
[0] => Array
(
[dossier_id] => 11
[dossier_parent_id] => 4
[dossier_nom] => 12 janvier 2008
)

[1] => Array
(
[dossier_id] => 10
[dossier_parent_id] => 4
[dossier_nom] => 15 mars 2008
)

[3] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
)

[4] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
)

[5] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
)

[6] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
)

[7] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
)

[8] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
)

)



tree2 : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)




chercheIdDansTree(id_a_trouver=1,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=3)
valeur_a_donner : Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 3
foreach ($tableau_a_explorer as $id => $dossier)
id : 1
dossier : Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 1
$dossier['dossier_id']==$id_a_trouver
rempliBranche(&branche=Array,cle=dossier_fils,valeur=Array)
branche : Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
)

)
valeur : Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
**** APRES **** : branche : Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => BERNARD Simon
[dossier_fils] => Array
(
)

)

)

)
**** APRES **** : tree2 : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
unset($tree1[$id_a_effacer_dans_tree1=3]);

chercheIdDansTree(id_a_trouver=3,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=4)
valeur_a_donner : Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 3
$dossier['dossier_id']==$id_a_trouver
rempliBranche(&branche=Array,cle=dossier_fils,valeur=Array)
branche : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
)

)
valeur : Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
**** APRES **** : branche : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)
**** APRES **** : tree2 : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
unset($tree1[$id_a_effacer_dans_tree1=4]);

chercheIdDansTree(id_a_trouver=1,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=5)
valeur_a_donner : Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)
$dossier['dossier_id'] is set : 3

chercheIdDansTree(id_a_trouver=1,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=5)
valeur_a_donner : Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 7
foreach ($tableau_a_explorer as $id => $dossier)
id : 1
dossier : Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)
$dossier['dossier_id'] is set : 1
$dossier['dossier_id']==$id_a_trouver
rempliBranche(&branche=Array,cle=dossier_fils,valeur=Array)
branche : Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)
valeur : Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)
**** APRES **** : branche : Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)
**** APRES **** : tree2 : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
unset($tree1[$id_a_effacer_dans_tree1=5]);

chercheIdDansTree(id_a_trouver=3,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=6)
valeur_a_donner : Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)
$dossier['dossier_id'] is set : 3
$dossier['dossier_id']==$id_a_trouver
rempliBranche(&branche=Array,cle=dossier_fils,valeur=Array)
branche : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autre
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

)

)
valeur : Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)
**** APRES **** : branche : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)
**** APRES **** : tree2 : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
unset($tree1[$id_a_effacer_dans_tree1=6]);

chercheIdDansTree(id_a_trouver=3,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=7)
valeur_a_donner : Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)
$dossier['dossier_id'] is set : 3
$dossier['dossier_id']==$id_a_trouver
rempliBranche(&branche=Array,cle=dossier_fils,valeur=Array)
branche : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)
valeur : Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)
**** APRES **** : branche : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)
**** APRES **** : tree2 : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
unset($tree1[$id_a_effacer_dans_tree1=7]);

chercheIdDansTree(id_a_trouver=1,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=8)
valeur_a_donner : Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => utres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)
$dossier['dossier_id'] is set : 3

chercheIdDansTree(id_a_trouver=1,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=8)
valeur_a_donner : Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 7
foreach ($tableau_a_explorer as $id => $dossier)
id : 1
dossier : Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 9
foreach ($tableau_a_explorer as $id => $dossier)
id : 2
dossier : Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 8
foreach ($tableau_a_explorer as $id => $dossier)
id : 1
dossier : Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)
$dossier['dossier_id'] is set : 1
$dossier['dossier_id']==$id_a_trouver
rempliBranche(&branche=Array,cle=dossier_fils,valeur=Array)
branche : Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

)

)
valeur : Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)
**** APRES **** : branche : Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)
**** APRES **** : tree2 : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
unset($tree1[$id_a_effacer_dans_tree1=8]);

chercheIdDansTree(id_a_trouver=4,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=0)
valeur_a_donner : Array
(
[dossier_id] => 11
[dossier_parent_id] => 4
[dossier_nom] => 12/01/2008
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autre
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)
$dossier['dossier_id'] is set : 3

chercheIdDansTree(id_a_trouver=4,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=0)
valeur_a_donner : Array
(
[dossier_id] => 11
[dossier_parent_id] => 4
[dossier_nom] => 12/01/2008
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 7
foreach ($tableau_a_explorer as $id => $dossier)
id : 1
dossier : Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 9
foreach ($tableau_a_explorer as $id => $dossier)
id : 2
dossier : Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 8
foreach ($tableau_a_explorer as $id => $dossier)
id : 1
dossier : Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)
$dossier['dossier_id'] is set : 1

chercheIdDansTree(id_a_trouver=4,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=0)
valeur_a_donner : Array
(
[dossier_id] => 11
[dossier_parent_id] => 4
[dossier_nom] => 12/01/2008
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 4
$dossier['dossier_id']==$id_a_trouver
rempliBranche(&branche=Array,cle=dossier_fils,valeur=Array)
branche : Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
valeur : Array
(
[dossier_id] => 11
[dossier_parent_id] => 4
[dossier_nom] => 12/01/2008
[dossier_fils] => Array
(
)

)
**** APRES **** : branche : Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 11
[dossier_parent_id] => 4
[dossier_nom] => 12/01/2008
[dossier_fils] => Array
(
)

)

)

)
**** APRES **** : tree2 : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
unset($tree1[$id_a_effacer_dans_tree1=0]);
foreach ($tableau_a_explorer as $id => $dossier)
id : 2
dossier : Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 2

chercheIdDansTree(id_a_trouver=4,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=1)
valeur_a_donner : Array
(
[dossier_id] => 10
[dossier_parent_id] => 4
[dossier_nom] => 15/03/2008
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)
$dossier['dossier_id'] is set : 3

chercheIdDansTree(id_a_trouver=4,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=1)
valeur_a_donner : Array
(
[dossier_id] => 10
[dossier_parent_id] => 4
[dossier_nom] => 15/03/2008
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 7
foreach ($tableau_a_explorer as $id => $dossier)
id : 1
dossier : Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 9
foreach ($tableau_a_explorer as $id => $dossier)
id : 2
dossier : Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 8
foreach ($tableau_a_explorer as $id => $dossier)
id : 1
dossier : Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)
$dossier['dossier_id'] is set : 1

chercheIdDansTree(id_a_trouver=4,valeur_a_donner=Array,&tableau_a_explorer=Array,id_a_effacer_dans_tree1=1)
valeur_a_donner : Array
(
[dossier_id] => 10
[dossier_parent_id] => 4
[dossier_nom] => 15/03/2008
[dossier_fils] => Array
(
)

)
tableau_a_explorer : Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)
foreach ($tableau_a_explorer as $id => $dossier)
id : 0
dossier : Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 4
$dossier['dossier_id']==$id_a_trouver
rempliBranche(&branche=Array,cle=dossier_fils,valeur=Array)
branche : Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)
valeur : Array
(
[dossier_id] => 10
[dossier_parent_id] => 4
[dossier_nom] => 15/03/2008
[dossier_fils] => Array
(
)

)
**** APRES **** : branche : Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 10
[dossier_parent_id] => 4
[dossier_nom] => 15/03/2008
[dossier_fils] => Array
(
)

)

)

)
**** APRES **** : tree2 : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)
unset($tree1[$id_a_effacer_dans_tree1=1]);
foreach ($tableau_a_explorer as $id => $dossier)
id : 2
dossier : Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)
$dossier['dossier_id'] is set : 2



tree2 : Array
(
[0] => Array
(
[dossier_id] => 3
[dossier_parent_id] => 0
[dossier_nom] => Autres
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 7
[dossier_parent_id] => 3
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 9
[dossier_parent_id] => 3
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 8
[dossier_parent_id] => 3
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[1] => Array
(
[dossier_id] => 1
[dossier_parent_id] => 0
[dossier_nom] => Contrats
[dossier_fils] => Array
(
[0] => Array
(
[dossier_id] => 4
[dossier_parent_id] => 1
[dossier_nom] => Simon
[dossier_fils] => Array
(
)

)

[1] => Array
(
[dossier_id] => 5
[dossier_parent_id] => 1
[dossier_nom] => Marcel
[dossier_fils] => Array
(
)

)

[2] => Array
(
[dossier_id] => 6
[dossier_parent_id] => 1
[dossier_nom] => Maria
[dossier_fils] => Array
(
)

)

)

)

[2] => Array
(
[dossier_id] => 2
[dossier_parent_id] => 0
[dossier_nom] => Lettres
[dossier_fils] => Array
(
)

)

)



tree1 : Array
(
)






Crazygogo
vendredi 4 avril 2008 à 12:06:42 | Re : TreeView à partir d'une table MySQL

crazygogo

Bon alors mes infos de debug semblent faire bugger l'affichage du forum !!!..... Mais je n'ai pas trouvé comment modifier mon message....

Sinon après avoir trituré mon cerveau dans tous les sens et m'être arraché tous les cheveux, j'ai réussi à faire le bricolage que vous trouverez ci-dessous et qui a le mérite de fonctionner !!!

Si vous avez des suggestions pour améliorer tout ça n'hésitez pas !

Merci.


CODE :

// On récupère tous les dossier et sous-dossiers de l'utilisateur dans le tableau $tree1 :
$tree1 = array();
$sql = 'SELECT *
        FROM gestion_documentaire_dossiers
        ORDER BY dossier_nom;';
$DB_CX->DbQuery($sql);
while ($enr = $DB_CX->DbNextRow()) {
    $dossier_parent_id = $enr['dossier_parent_id'];
    if(trim($dossier_parent_id=='')){
        $dossier_parent_id = 0;
    }
    $tree1[] =
    array(
        'dossier_id' => $enr['dossier_id'],
        'dossier_parent_id' => $dossier_parent_id,
        'dossier_nom' => $enr['dossier_nom']
    );
}
/*
On a maintenant tous les enregistrements dans tree1 sous la forme :

tree1
(
    [0] => Array
        (
            [dossier_id] => 11
            [dossier_parent_id] => 4
            [dossier_nom] => 12/01/2008
        )

    [1] => Array
        (
            [dossier_id] => 10
            [dossier_parent_id] => 4
            [dossier_nom] => 15/03/2008
        )
    [2] => Array
        (
            [dossier_id] => 3
            [dossier_parent_id] => 0
            [dossier_nom] => Autres
        )
)
*/
$cpt = 0;
$tree2 = array();
$dossiersDejaCrees = array();
foreach ($tree1 as $id => $dossier) {
    if($dossier['dossier_parent_id']==0){
        $dossiersDejaCrees[] = $dossier['dossier_id'];
        $tree2[$cpt] = $dossier;
        unset($tree1[$id]);
        $cpt ++;
    }
}
/*
tree2 ne contient que les dossiers racine sous la forme :

tree2
(
    [0] => Array
        (
            [dossier_id] => 3
            [dossier_parent_id] => 0
            [dossier_nom] => Autres
        )

    [1] => Array
        (
            [dossier_id] => 1
            [dossier_parent_id] => 0
            [dossier_nom] => Contrats
        )

    [2] => Array
        (
            [dossier_id] => 2
            [dossier_parent_id] => 0
            [dossier_nom] => Lettres
        )
)



dossiersDejaCrees contient la liste des id de tous les dossiers déja créés sous la forme :

dossiersDejaCrees
(
    [0] => 3
    [1] => 1
    [2] => 2
)

*/


// Tant que le tree1 n'est pas vide (on efface ses entrées au fur et a mesure qu'on les insère dans tree2) :
while(count($tree1)>0){
    foreach ($tree1 as $id => $dossier) {
        if(in_array($dossier['dossier_parent_id'],$dossiersDejaCrees)){
            // Le dossier pere de ce dossier a déja été créé dans tree2, on peut donc lancer les recherches...
            chercheIdDansTree($dossier['dossier_parent_id'],$dossier,$tree2,$id);
        }
    }
}


function chercheIdDansTree($id_a_trouver,$valeur_a_donner,&$tableau_a_explorer,$id_a_effacer_dans_tree1){
    global $tree1,$dossiersDejaCrees;
   
    foreach ($tableau_a_explorer as $id => $dossier) {
       
        if(isset($dossier['dossier_id'])){
            if($dossier['dossier_id']==$id_a_trouver){
                rempliBranche($tableau_a_explorer[$id],'dossier_fils',$valeur_a_donner);
                unset($tree1[$id_a_effacer_dans_tree1]);
                $dossiersDejaCrees[] = $id_a_effacer_dans_tree1;
                break;
            }
            elseif(count($dossier['dossier_fils'])>0){
                chercheIdDansTree($id_a_trouver,$valeur_a_donner,$tableau_a_explorer[$id]['dossier_fils'],$id_a_effacer_dans_tree1);
            }
        }
        else{
            if(is_array($dossier)){
                chercheIdDansTree($id_a_trouver,$valeur_a_donner,$tableau_a_explorer[$id],$id_a_effacer_dans_tree1);
            }
        }
       
    }
}


function rempliBranche(&$branche,$cle,$valeur){
    $branche[$cle][] = $valeur;
}


RESULTAT:

$tree2 = Array
(
    [0] => Array
        (
            [dossier_id] => 3
            [dossier_parent_id] => 0
            [dossier_nom] => Autres
            [dossier_fils] => Array
                (
                    [0] => Array
                        (
                            [dossier_id] => 7
                            [dossier_parent_id] => 3
                            [dossier_nom] => Simon
                        )

                    [1] => Array
                        (
                            [dossier_id] => 9
                            [dossier_parent_id] => 3
                            [dossier_nom] => Marcel
                        )

                    [2] => Array
                        (
                            [dossier_id] => 8
                            [dossier_parent_id] => 3
                            [dossier_nom] => Maria
                        )

                )

        )

    [1] => Array
        (
            [dossier_id] => 1
            [dossier_parent_id] => 0
            [dossier_nom] => Contrats
            [dossier_fils] => Array
                (
                    [0] => Array
                        (
                            [dossier_id] => 4
                            [dossier_parent_id] => 1
                            [dossier_nom] => Simon
                            [dossier_fils] => Array
                                (
                                    [0] => Array
                                        (
                                            [dossier_id] => 11
                                            [dossier_parent_id] => 4
                                            [dossier_nom] => 12/01/2008
                                        )

                                    [1] => Array
                                        (
                                            [dossier_id] => 10
                                            [dossier_parent_id] => 4
                                            [dossier_nom] => 15/03/2008
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [dossier_id] => 5
                            [dossier_parent_id] => 1
                            [dossier_nom] => Marcel
                        )

                    [2] => Array
                        (
                            [dossier_id] => 6
                            [dossier_parent_id] => 1
                            [dossier_nom] => Maria
                        )

                )

        )

    [2] => Array
        (
            [dossier_id] => 2
            [dossier_parent_id] => 0
            [dossier_nom] => Lettres
        )

)



YES !

Crazygogo



Cette discussion est classée dans : table, mysql, dossier, id, parent


Répondre à ce message

Sujets en rapport avec ce message

problème de mise à jour de base de données [ par rildspael ] Ben en fait maintenant j'ai refait ce code, je me suis concentré, j'ai tout analysé mais rien ne marche encore et je ne comprends pas : le voici :Donc Sélectionner les lignes différentes entre deux tables [ par Mikemadest ] Bonjour,J'ai cherché sans trouver de réponse à mon problème,ce qui m'amène à vous poser cette question !D'avance je m'excuse si j'ai raté la solution Afficher une ligne d'une table mysql [ par Alferox ] Bonjours,bon bin une question de base toute con.Je voudrais afficher uniquement la ligne qui port l'id 2 d'une table. Il n'y a pas plus simple que de MySQL : changement de l'ID dans une table [ par DJDX ] Bonjour groupe!Ma question peut parraître simple, mais je n'ai aucune idée comment résoudre mon "problême".si je tape ce codemysql_select_db($base, Probleme d'affichage dans une liste déroulante [ par JohnInsane ] Bonjour à tous, Voilà j'ai un problème, j'ai fais un script où l'on choisit une catégorie dans une liste déroulante qui est dans la table cat où j'a MySQL_INSERT_ID mais pour le delete ???? [ par ripoux ] Hello,Peut-être l'aurez-vous compris dans le titre...Je cherche un moyen pour faire un delete de plusieur table relié entre elle.Pour un Insert, il ex Probleme recuperation de l'id d'une table pour insérer dans une autre par la methode update [ par Alpha911 ] Bonjour,Je test plusieurs methodes pour pouvoir prendre l'id d'une table qui et la recopier dans une autre table j'ai 2 tables UTILISATEUR et une autr Comment savoir le dernier ID (MySQL) [ par ImmortalPC ] Salut, j'ai un super problème. j'ai une table comme cela : CREATE TABLE `test` ( `ID` int(11) NOT NULL auto_increment, `sujet` varchar(255) NOT NULL pb de liste deroulante [ par EksTaZia ] bonjour a tous, j'ai une requete qui m'affiche tous les métiers présents dans ma base, dans une liste déroulante En faisant son choix de métier, t MySql [ par jnbrunet ] Salut,Quelle est la manière la plus simple et la plus courte pour défénir combien de champs de ma table on la valeur "2" dans la section ID?j'avais pe


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 4,009 sec (3)

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