За последние 24 часа нас посетили 17098 программистов и 1835 роботов. Сейчас ищут 1575 программистов ...

Вывод страниц по вложенности

Тема в разделе "Прочие вопросы по PHP", создана пользователем zevilz, 19 янв 2016.

  1. zevilz

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

    С нами с:
    14 июн 2010
    Сообщения:
    182
    Симпатии:
    0
    Решил тут у себя реализовать вложенность страниц. Уровень вложенности не ограничен. Сначала добавил через базу пути к странице (/page/child/child_child/child_child_child/). При переходе на страницу ищется введенный урл в базе. Если есть такой урл в какой-то странице в базе, то извлекается инфа и выводится в шаблон. Если нет, то 404. Вроде бы работает, но при создании админки возникли трудности при выводе страниц в виде дерева. Добавил еще одно поле в базу parent_page, где указывается айдишник родительской страницы, но и с этим не получается вывести в виде дерева, т.к. неизвестно, сколько уровней вложенности. Проще говоря, нужно как-то реализовать динамическую вложенность циклов.

    Должно получиться что-то типа вот такого:
    Код (PHP):
    1. <ul>
    2.     <li>
    3.         <a href="/"></a>
    4.         <ul>
    5.             <li><a href="/page1/"></a></li>
    6.             <li>
    7.                 <a href="/page2/"></a>
    8.                 <ul>
    9.                     <li><a href="/page2/child1/"></a></li>
    10.                     <li><a href="/page2/child2/"></a></li>
    11.                     <li>
    12.                         <a href="/page2/child3/"></a>
    13.                         <ul>
    14.                             <li><a href="/page2/child3/child_child1/"></a></li>
    15.                             <li><a href="/page2/child3/child_child2/"></a></li>
    16.                             <li><a href="/page2/child3/child_child3/"></a></li>
    17.                         </ul>
    18.                     </li>
    19.                 </ul>
    20.             </li>
    21.             <li><a href="page3"></a></li>
    22.         </ul>
    23.     </li>
    24. </ul>
    25.  
    Может у кого есть какие предложения? И что лучше использовать для вложенности, чтобы опять не наступить на свои же грабли :) ? Урл страницы или идентификатор родительской страницы?

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    рекурсивный запрос, на сколько мне известно его в mysql нет, по этому.. интересно посмотреть что предложат для выхода из этой ситуации.
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    любая реализация вложенных множеств вполне решит проблему. кстати урл это уже материал паф
     
  4. zevilz

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

    С нами с:
    14 июн 2010
    Сообщения:
    182
    Симпатии:
    0
    Нашел решение вот тут. Вроде бы работает. Буду тестить.