|
Тема |
Re: Извеждане на дърво от 1 таблица [re: k] |
|
Автор |
gonzales () |
|
Публикувано | 02.10.02 18:12 |
|
|
всички предлагат всъщност едно и също решение, чиито основен недостатък е трудната промяна на дървото. обаче и аз както ти използвам таблица от вида:
elements(el_id,par-id,prj_id,el_name), като пазя и id на проект към който се отнася дървото. за да изрисувам дървото, правя следното:
$sql="SELECT elements.* FROM projects LEFT JOIN elements ON (projects.prj_id=elements.prj_id) WHERE projects.prj_id=$prj_id ORDER BY elements.par_id DESC";
$result = $dbh->simpleQuery($sql, DB_FETCHMODE_ASSOC);
$tree= array();
while ($myrow = (object) $dbh->fetchRow($result, DB_FETCHMODE_ASSOC)){
$node_level=get_el_level($myrow->el_id);
$node_parent=$myrow->par_id;
$pref="";
for ($i=0;$i<=$node_level;$i++){
$pref.=" ";
}
$node_row=$pref."<a href=\"$PHP_SELF?prj_id=$prj_id&el_id=".$myrow->el_id."\" class=leftmenu>".$myrow->el_name."</a> ";
if (isset(${$myrow->el_id})){
$node_row.=join("\n",${$myrow->el_id});
}
${$node_parent}[$myrow->el_id]=$node_row;
}
}
накрая в $node_row се съдържа цялото дърво.
трика е в променливите с имена на променлива - по този начин подреждам дървото, РАБОТИИИИИ!!!!
|
| |
|
|
|