I´m not quite sure if it could help you, because it´s whole in portuguese, but i´ll send you.
My table is called categoria and has the follow structure: CREATE TABLE `categoria` ( `id` int(20) NOT NULL auto_increment, `cat_id` int(20) NOT NULL default '0', `nome` varchar(50) NOT NULL default '', `icone` varchar(255) NOT NULL default '', `cod_shop` varchar(5) NOT NULL default '', `topo` char(1) NOT NULL default '', PRIMARY KEY (`id`) ) Where the relations each register of the tree are like this: ID , CATEGORIA, CAT_ID 1 , Top , 0 2 , Level 1 , 1 3 , Level 2 ,2 4 , Another Top , 0 And then i use the follow routine to get the tree: $sql = "SELECT * FROM categoria ORDER BY cat_id, nome"; $con->Query($sql); $counter = $con->count; $categorias=array(); for($z=0;$z<$con->count;$z++){ $con->Seek($z); list($id_cat, $cat_id, $nome_cat, $icone_cat) = $con->result; $categorias[$id_cat]=array("id_cat" => $id_cat, "cat_id" => $cat_id, "nome_cat" => $nome_cat, "icone_cat" => $icone_cat, "familia" => $id_cat, ); $continua=$cat_id!=null && $cat_id>0; if ($continua) { $qual=$cat_id; $categorias[$id_cat]["indice"]=""; while ($continua) { $categorias[$id_cat]["indice"]=$categorias[$qual]["nome_cat"].$categorias[$id_cat]["indice"]; $continua=$categorias[$qual]["cat_id"]!=null && $categorias[$qual]["cat_id"]>0; $tem_pai=$cat_id!=null && $cat_id>0; if ($tem_pai) $pai=$cat_id; while ($tem_pai) { if (!strpos($categorias[$pai]["familia"],", ".$categorias[$id_cat]["id_cat"])) $categorias[$pai]["familia"].=", ".$categorias[$id_cat]["id_cat"]; $tem_pai=$categorias[$pai]["cat_id"]!=null && $categorias[$pai]["cat_id"]>0; $pai=$categorias[$pai]["cat_id"]; } if ($continua) { $qual=$categorias[$qual]["cat_id"]; } } } } reset($categorias); $linhas=array(); foreach ($categorias as $categoria) { $linhas[$categoria["indice"].$categoria["nome_cat"]]=array("id_cat" => $categoria["id_cat"], "nome_cat" => $categoria["nome_cat"], "icone_cat" => $categoria["icone_cat"], "indice" => $categoria["indice"], "familia" => $categoria["familia"]); } ksort($linhas); reset($linhas); Hope help you. -- João Cândido de Souza Neto Curitiba Online [EMAIL PROTECTED] (41) 3324-2294 (41) 9985-6894 http://www.curitibaonline.com.br ""abhishek jain"" <[EMAIL PROTECTED]> escreveu na mensagem news:[EMAIL PROTECTED] > Hi, > I have a table structure like : > ID , NAME, PARENT_ID > 1 , Top , 0 > 2 , Level 1 , 1 > 3 , Level 2 ,2 > 4 , Another Top , 0 > > > and so on. > I wanted to know the topmost cat. if i have the lowest category id ie. 3 > in > this case. > I wanted to get like 3->2->1 > Pl. help me , cn i do this in one query, also i do not know how many > sublevels are there, > Thanks, > Abhishek jain > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]