CrazyCat
2007-04-05 15:40:59 UTC
Bonjour,
j'essaye de stocker un arbre extrait d'une base de données dans un
tableau de données.
La structure de la base est simple:
id -> l'id de l'élément
parent_id -> l'id du parent (0 si on est à la racine)
name -> le nom de l'objet
J'ai donc une requete: SELECT * FROM table ORDER BY parent_id ASC, id ASC
J'ai fait une petite fonction qui arrive à me créer l'arbre jusqu'au
niveau -2 mais impossible de trouver comment la rendre récursive pour
atteindre le niveau -n
Ma fonction actuelle:
function addChild($id, $parent, $name) {
if ($parent == 0) {
$tree[$id] = Array('id' => $id, 'titre' => $name);
} else {
if (array_key_exists($parent, $this->tree)) {
$tree[$parent][$id] = Array('id' => $id, 'titre' => $name);
} else {
foreach($this->tree as $cpid => $row) {
if (array_key_exists($parent, $row)) {
$tree[$cpid][$parent][$id] = Array('id' => $id,
'titre' => $name);
}
}
}
}
}
Merci à ceux qui pourront me donner un petit coup de main.
j'essaye de stocker un arbre extrait d'une base de données dans un
tableau de données.
La structure de la base est simple:
id -> l'id de l'élément
parent_id -> l'id du parent (0 si on est à la racine)
name -> le nom de l'objet
J'ai donc une requete: SELECT * FROM table ORDER BY parent_id ASC, id ASC
J'ai fait une petite fonction qui arrive à me créer l'arbre jusqu'au
niveau -2 mais impossible de trouver comment la rendre récursive pour
atteindre le niveau -n
Ma fonction actuelle:
function addChild($id, $parent, $name) {
if ($parent == 0) {
$tree[$id] = Array('id' => $id, 'titre' => $name);
} else {
if (array_key_exists($parent, $this->tree)) {
$tree[$parent][$id] = Array('id' => $id, 'titre' => $name);
} else {
foreach($this->tree as $cpid => $row) {
if (array_key_exists($parent, $row)) {
$tree[$cpid][$parent][$id] = Array('id' => $id,
'titre' => $name);
}
}
}
}
}
Merci à ceux qui pourront me donner un petit coup de main.
--
Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Réseau IRC Francophone: http://www.crazy-irc.net
Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Réseau IRC Francophone: http://www.crazy-irc.net