Создание неупорядоченного меню навигации по списку с более простым способом - PullRequest
0 голосов
/ 29 апреля 2011

Я написал динамическое меню, основанное на трех таблицах в дБ, которые отображают ниже уровня кадра:

> Section
>> Categories
>>> Subcategory

Вот мой код:

include("connDB.php");

echo '<ul>';
$q1 = mysql_query("SELECT * FROM section ORDER BY section_name ASC");

while($getSection = mysql_fetch_array($q1)) {
    echo "<li><a href='content.php?sec={$getSection['section_id']}&cat='>{$getSection['section_name']}</a>";

    $q2 = mysql_query("SELECT * FROM category WHERE section_id = '{$getSection['section_id']}'");
    if(mysql_num_rows($q2) > 0) {
        echo "<ul>";
        while($getCat = mysql_fetch_array($q2)) {
            echo "<li><a href='content.php?sec={$getSection['section_id']}&cat={$getCat['category_id']}&scat='>{$getCat['category_name']}</a>";

            $q3 = mysql_query("SELECT * FROM subcategory WHERE category_id = '{$getCat['category_id']}'");
            if(mysql_num_rows($q3) > 0) {
                echo "<ul>";
                while($getSubCat = mysql_fetch_array($q3)) {
                    echo "<li><a href='content.php?sec={$getSection['section_id']}&cat={$getCat['category_id']}&scat={$getSubCat['subcategory_id']}&getDetail='>{$getSubCat['subcategory_name']}</a></li>";
                }
                echo "</ul>";
                echo "</li>";
            }
        }
        echo "</ul>";
        echo "</li>";
    }
}
echo '</ul>';

Мне интересно, могу ли я найти какую-нибудь помощь, чтобы украсить этот код базового уровня лучше, более профессионально? Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2012

Итак, я знаю, что это старый вопрос. Тем не менее, для любого, кто сталкивается с этим, есть решение. Он идентичен другому ответу, однако иногда его называют Модифицированный предварительно упорядоченный обход дерева (MPTT)

Некоторые веб-фреймворки, такие как CakePHP и Django, имеют его встроенный и называют его «деревом», что значительно повысит гибкость вашего меню и сохранит порядок.

0 голосов
/ 29 апреля 2011

Взгляните на:

http://en.wikipedia.org/wiki/Nested_set_model

переделайте ваши три таблицы в одну, затем измените вызов recurisve на один оператор sql и выполните несколько php-цикловсписок.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...