Меню навигации для зц

1. TRAIL (13.05.2012 / 10:50)
Нужно написать зц, появилась проблема
http://4mas.ru/download/?cat=8839 (не реклама)

интересует это:

Загрузки | Дизайны/CSS |
Простые/CSS-стили | Авторские Дизайны

с неограниченными категориями проблем нет, но вот как узнать путь , который прошел юзер, к примеру
/Загрузки/Музыка/Рок/и т.д.

Добавлено через 01:42 сек.
У таблицы такая структура,
id - ?!?
name - имя категории
pid - ид , в которой находится категория

2. Tony V (13.05.2012 / 11:11)
Рекурсия.
while(родительская категория != "")
получаешь название и ид родительской категории.
формируешь строку
?????
Profit

3. Сергей (13.05.2012 / 11:36)
я раньше делал тоже через рекурсию. Ну вообще не так уж и хорошо, тем более для загруз центра. В последний раз, когда мне это понадобилось. Я отсортировал строки при запросе, результат запроса записал в двумерный массив и потом уже его мучил рекурсией.

4. Сергей (13.05.2012 / 11:52)
обращение функции к самой к себе.

function super () {

super();

}

5. TRAIL (13.05.2012 / 18:09)
5. Voland, рекурсия! Спасибоsmile

6. ramzes (13.05.2012 / 18:33)
Не надо запросы к бд в цикле делать.
По патчу одна выборка, в патч или весь путь до текущей папки, или все ид родительских деррикторий

7. TRAIL (13.05.2012 / 18:33)
Еще вопрос, папки и файлы лучше хранить в одной таблице? Или

8. Николай (13.05.2012 / 19:10)
9. TRAIL, в разных(сортировку лучше делать в дальнейшем если потребуется) если смотреть со стороны ресурсов БД

Добавлено через 02:47 сек.
function menu_navigation($id_cat, $link, $cat)
  {
    $id_cat = intval($id_cat);
    $query = "SELECT * FROM $cat 
              WHERE id_cat = $id_cat";
    $cat = mysql_query($query);
    if(!$cat)
    {
      throw new ExceptionMySQL(mysql_error(), 
                               $query,
                              "Ошибка обращения к 
                               таблице каталога 
                               menu_navigation()");
    }
    if(mysql_num_rows($cat) > 0)
    {
      $cat_result = mysql_fetch_array($cat);
      $link = "<a class=menu 
              href=index.php?id_par=".$cat_result['id_cat'].">
              ".$cat_result['name']."</a>->".$link;
      $link = menu_navigation($cat_result['id_par'], 
                              $link, 
                              $cat);
    }
    return $link;
  }

А вот так бы я поступил по первому твоему вопросу

9. Богдан (13.05.2012 / 21:22)
7. Юзай лучше вложенные множества, если важно быстродействие при выборке
http://www.getinfo.ru/article610.html

10. Сергей (14.05.2012 / 05:51)
Интересная статья, взял на заметку. Но по-моему метод который я описал проще, может конечно не такой правильный, но удалять и добавлять категории гораздо удобнее.

Добавлено через 01:06 сек.
11. G_A_N_J_A_R, а ты этим пользуешься?

11. Богдан (14.05.2012 / 12:52)
12. Зависит от поставленной задачи. Для нагруженных порталов с большой вложенностью только его и использую. Что бы не было проблем с добавлением/удалением используй класс для работы с деревом. в сети должны быть готовые решения

URL: https://visavi.net/topics/31910