За последние 24 часа нас посетили 18292 программиста и 1598 роботов. Сейчас ищут 997 программистов ...

Нумерованная рекурсия

Тема в разделе "PHP и базы данных", создана пользователем regesh, 11 фев 2011.

  1. regesh

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

    С нами с:
    11 фев 2011
    Сообщения:
    3
    Симпатии:
    0
    есть код:
    PHP:
    1. function display_child($parent)
    2. {
    3.     $sql = "SELECT * from `pages` WHERE subto='$parent'";
    4.     $result = mysql_query($sql);
    5.     echo '<ul>';
    6.         $x=1;
    7.     while ($row = mysql_fetch_array($result))
    8.         {
    9.             echo '<li>';
    10.             echo $x.'.'.$row['name'];
    11.             $x++;
    12.             display_child($row['id']);
    13.             echo '</li>';
    14.     }
    15.     echo '</ul>';
    16. }
    17. display_child(0);
    Как сделать что бы нумерация была не просто числовая в текущем уровне а еще и перед текущем номером элементы был значение (адрес) был адрес всего родительского уровня.

    К примеру
    1 item
    2 item
    2.1 item
    2.2 item
    2.2.1 item
    2.2.2 item
    3 item



    А в таблице всё просто

    id=индификатор записи
    name = название
    subto = индивикатор родителя (если 0 то верхний уровень - главная)


    так наглядней
    http://alturl.com/fck93
     
  2. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    если по-быстрому, то добавить функции второй параметр с номером предка
     
  3. regesh

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

    С нами с:
    11 фев 2011
    Сообщения:
    3
    Симпатии:
    0
    Ну это я уже пробовал но не не получается что то. Может вы приведете пример?
     
  4. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    покажите, что пробовали, вам покажут на ошибки.
     
  5. regesh

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

    С нами с:
    11 фев 2011
    Сообщения:
    3
    Симпатии:
    0
    Уфф, сделал! Выспался и сделал))) Спасибо всем кто откликнулся.
    PHP:
    1. function display_child($parent = 0, $level = NULL)
    2. {
    3.     $x=1;
    4.     $sql = "SELECT * from pages WHERE id!=2 and subto='$parent' ORDER BY sort";
    5.     $result = mysql_query($sql);
    6.     if(mysql_num_rows($result)>0)
    7.     {
    8.         if($parent!=0){$level.='.';}
    9.     }
    10.     echo '<ul>';
    11.     while ($row = mysql_fetch_array($result))
    12.     {
    13.     echo '<li>';
    14.     echo $level;
    15.     echo $x.'. ';
    16.     echo $row['name'];
    17.     display_child($row['id'],$level.$x);   
    18.     $x++;
    19.     echo '</li>';
    20.     }
    21.     echo '</ul>';
    22. }