За последние 24 часа нас посетили 16999 программистов и 2212 роботов. Сейчас ищут 1228 программистов ...

древовидный список (подсчет)

Тема в разделе "PHP для новичков", создана пользователем gkhelloworld, 11 окт 2010.

  1. gkhelloworld

    gkhelloworld Активный пользователь

    С нами с:
    18 ноя 2007
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    PHP.ru
    помогите подсчитать древовидный список

    реализация
    Код (Text):
    1. БД
    2. id
    3. parent_id
    4. name
    PHP:
    1. function three($parent_id)
    2. {
    3.    $DB = "... WHERE `parent_id` = '".$parent_id."'";
    4.    foreach ($DB as $item)
    5.    {
    6.      echo $item->name.three($item->id);
    7.    }
    8. }
    подскажите как моно подсчитать вложенность чтобы сделать структуру вида

    - Телефоны
    -- Мобильные
    --- Mokia
    -- Транковые
    --- Denao
    - Компьютеры
    -- Mac
    -- PC
     и.д...
    я не могу просчитать эту вложенность, чтобы расставить тире...
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    у меня почти такая же таблица, только там еше path есть, типа 1/3/5/9 ...
    можно по ним посчитать, если просто посчитать надо...
    у меня div с margin-left:20px и дочерние разделы выводятся внутрь родительских, получаются отступы
     
  3. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Угу, у меня также сделано.
     
  4. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    PHP:
    1.  
    2. <?php
    3. function three($parent_id)
    4.  {
    5.    static $level=0;
    6.    $level++;
    7.    $DB = "... WHERE `parent_id` = '".$parent_id."'";
    8.    foreach ($DB as $item)
    9.    {
    10.      echo getTireByLevel($level), $item->name.three($item->id);
    11.    }
    12.    $level--;
    13.  }
    Правда статикой я особо не пользовался, может не сработать, тогда переменную можно сделать глобальной или, если это завернуто в объект, свойством объекта.
     
  5. gkhelloworld

    gkhelloworld Активный пользователь

    С нами с:
    18 ноя 2007
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    PHP.ru
    Volt(220)
    все работает четко, ты был прав, статика сработала, для такого примера особо навороты не нужны
    респект +1
     
  6. Ernmalind

    Ernmalind Активный пользователь

    С нами с:
    26 сен 2010
    Сообщения:
    1
    Симпатии:
    0
    Адрес:
    Äðèìëàíäèÿ
    äðåâîâèäíûé ñïèñîê ïîäñ÷åò

    Ñàì VBA íåçíàþ, íî ó îáúåêòà òèïà Recordset åñòü ñâîéñòâî RecordCount.