Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Многоуровневое меню, Проблемы при реализации 
V
    Опции темы
SDEVIL
Дата 2.12.2007, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 30.10.2006

Репутация: нет
Всего: 1



Суть проблемы в следующем, хочу сделать многоуровневое меню, но не получается, в массив заносятся не все значения...

вот код:

Код

    class Menu_Tree{
        public $menuTree = array();
        public $menuIdTree = 0;
        function getMenuTree($prefixDB, $rootSection, $langs = 1, $visible = 1){
            $sql_text = "SELECT s_id AS id, s_parent AS parent, s_title AS title, s_visible AS visible, m_link AS link FROM ".$prefixDB."sections, ".$prefixDB."module WHERE s_parent = '".$rootSection."' AND s_module = m_id";
            switch($visible){
                case '0':
                    $sql_text .= " AND s_visible = '0'";
                    break;
                case '1':
                    $sql_text .= " AND s_visible = '1'";
                    break;
            }
            $sql_text .= " AND s_langs = '".$langs."'";
            $sql_text .= " ORDER BY s_order, s_id;";
            $sql_rez = mysql_query($sql_text);
            while($temp_menu_array = mysql_fetch_array($sql_rez)){
                $this -> menuTree['id'][$this -> menuIdTree] = $temp_menu_array['id'];
                $this -> menuTree['parent'][$this -> menuIdTree] = $temp_menu_array['parent'];
                $this -> menuTree['level'][$this -> menuIdTree] = "";//Как подсчитать уровень вообще не понимаю...
                $this -> menuTree['title'][$this -> menuIdTree] = $temp_menu_array['title'];
                $this -> menuTree['visible'][$this -> menuIdTree] = $temp_menu_array['visible'];
                $this -> menuTree['link'][$this -> menuIdTree] = $temp_menu_array['link'];
                if($temp_menu_array['id'] == 1 && $temp_menu_array['parent'] == 0){
                    $this -> menuTree['url'][$this -> menuIdTree] = $temp_menu_array['link'];
                }else{
                    $this -> menuTree['url'][$this -> menuIdTree] = $temp_menu_array['link']."?id=".$temp_menu_array['id'];
                }
                $this -> getMenuTree($prefixDB, $temp_menu_array['id']);
                $this -> menuIdTree ++;
            }
        }
    }


Вообщем хочу что бы на выходе был примерно такой массив:
id id_parent(id - родителя) уровень
1 0 нулевой уровень
2 0 нулевой уровень
3 0 нулевой уровень
4 2 второй уровень
5 4 третий уровень
6 5 четвертый уровень

--------------------
Подпись сбежала к другому юзверю....
PM MAIL   Вверх
SDEVIL
Дата 2.12.2007, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 30.10.2006

Репутация: нет
Всего: 1



Все вопрос решен, просто запрос оказывается немного с ошибкой написал....
--------------------
Подпись сбежала к другому юзверю....
PM MAIL   Вверх
SDEVIL
Дата 2.12.2007, 02:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 30.10.2006

Репутация: нет
Всего: 1



А вот вопрос с тем как узнать уровень вложенности остался, не получается.....

Что я имею ввиду:

1
  -1-1 - уровень вложенности = 1
  -1-2 - уровень вложенности = 1
  -1-3 - уровень вложенности = 1
       -3-1- уровень вложенности = 2
2
3

Как узнать этот уровень на стадии формирования меню... 
--------------------
Подпись сбежала к другому юзверю....
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0540 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.