"MySQL, дерево и путь к детёнышу"

vladax

Новичок
"MySQL, дерево и путь к детёнышу"

Пишу функцию, которая строит путь к детенышу в дереве, построеном на обычных парантах. Всё у меня ок, только вот никак не могу догнать как мне сюда добавить одну феню... короче, чтоб последний элемент не был в тегах <a href=...></a>, вообщем чтоб не содержал в себе ссылку. Не использовать же тут регулярные выражения? Ведь микроскопом по гвоздям бить не будем! Но как быть, ведь тут рекурсия, мать её!

PHP:
function get_path($cat_id) {
   $query = "SELECT * FROM totable_name WHERE cat_id = '$cat_id'";
   $result = mysql_query($query);
   while ($row = mysql_fetch_array($result)){
          $path1="<a href=\"$PHP_SELF?parent_id=".$row['cat_id']."\">".$row['cat_name']."</a> | ";
          $path2=get_path($row['parent_id']);
          $path2.=$path1;
   }
   return $path2;
}
// а потом вызываю её, обрезав последний "|" в пути
print substr (get_path($parent_id), 0, -2);
ЗЫ: Только не надо про Нестед Сетс напоминать. Некогда в нём копаться.
 

Demiurg

Guest
так а ты сразу в запросе и проверяй есть ли дети или нет.
Ох и тормозить все это будет ...
 

vladax

Новичок
какой лефт, у меня же табличка из 3-х полей cat_id, parent_id и cat_name
 

Crazy

Developer
Достаточно использовать двухпроходный алгоритм:

1. Формируем массив со списком узлов.
2. Перегоняем массив в HTML.

В этом варианте все получается совершенно тривиально.
 

vladax

Новичок
2Крэйзи

Точно. Я как то и не подумал.

Resume: вот до чего может довести навязчивая идея избегать массивы.
 
Сверху