Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/22: Рейтинг темы: голосов - 22, средняя оценка - 4.64
4 / 4 / 1
Регистрация: 29.07.2011
Сообщений: 41

Из маркерованного списка (ul li ) в таблицу... (дерево mysql)

29.08.2011, 02:18. Показов 4152. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, помогите ! Что-то я запутался..

Есть дерево
[img]http://s014.***********/i329/1108/97/c12ca9801289.png[/img]

на основе маркированного списка:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<ul id="treemenu1" class="treeview">
<li>Folder 1
<li>Folder 2
    <ul>
    <li>Folder 2.1<ul>
    <li>Sub Item 2.1.1</li>
    <li>Sub Item 2.1.2</li>
    </ul></li>
<li>SubItem 2.1</li></ul>
</li>Item1</li>
<li>Item2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
Генерится скриптом:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function ShowTree2(&$rs,$parent) {
    /*
    Извлекаем все данные одним запросом в массив 
        $query=mysql_query("select * from `learn` ORDER BY `IsNode` DESC");
        while (($row=mysql_fetch_assoc($query))!==false) {
            $rs2[$row['parent_id']][]=$row;
        }
    
    и обрабатываем его уже на PHP..
        ShowTree2($rs2,0);
    */
    $out=array();
    if (!isset($rs[$parent]))
    {
        return $out;
    }
    if($parent >0) echo '<ul>';
    foreach ($rs[$parent] as $row) {
        
        if ($row['IsNode']==1) {
            //это папка
            echo '<li>'.$row['title'];
        } else {
            //это пункт
            echo '<li><a href="'.$row['link'].'">'.$row['title'].'</a></li>';
        }
 
        ShowTree2($rs,$row['id']);
 
    }
    if($parent >0) echo '</ul></li>';   
 
}
Работает отлично. Теперь Мне надо для админки это меню преобразовать в <table>, чтобы получилось что то вроде
http://s1.ipicture.ru/uploads/... TnTEz1.png

(все фолдеры должны быть развернуты), в таблице надо отобразить уровень вложенность

Никак не могу придумать как это лучше сделать:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<table id="MainMenu" width="100%" height="500px" border="0">
    <tr>
        <td valign="top"><table id="MainMenu" width="100%" border="0" cellspacing="2">
    <tr>
        <td width="3%" bgcolor="#07387A"></td>
        <td width="47%" bgcolor="#07387A"></td>
        <td width="40%" bgcolor="#07387A"><div align="right"><input type="button" value="Добавить папку" onClick='location.href="adm.php?folder=0&add=1"'></div></td>
        <td width="10%" bgcolor="#07387A"><input type="button" value="Добавить файл" onClick='location.href="adm.php?file=0"'></td>
    </tr>
    <tr>
        <td colspan="2"><img src="open.gif" >Folder 1</td>
        <td><div align="right"><input type="button" value="Добавить папку" onClick='location.href="adm.php?folder=0"'><input type="button" value="Добавить файл" onClick='location.href="adm.php?file=0"'></div></td>
        <td><div align="right"><input type="button" value="Удалить" onClick="location.href='adm.php?del='"></div></td>
    </tr>
    
    <tr>
        <td></td>
        <td><img src="item.gif" >File 1</td>
        <td></td>
        <td><div align="right"><input type="button" value="Удалить" onClick="location.href='adm.php?del='"></div></td>
    </tr>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.08.2011, 02:18
Ответы с готовыми решениями:

Как задать отступ в тексте элемента нумерованного или маркерованного списка
Помогите пожалуйста! Как задать отступ в тексте элемента нумерованного или маркерованного списка? Например: &lt;ol&gt;Бывают такие школы:...

Как данными с одного сервера MySql заполнить таблицу на другом MySql-сервере?
Господа форумчане, здравствуйте! Помогите разобраться - как данными с одного сервера MySql заполнить таблицу на другом MySql-сервере... ...

Иерархическое дерево и MySQL
Как сделать Иерархическое дерево в windows forms что бы папки в нем соответствовали таблицам в базе данных а &quot;файлы&quot; в этик...

6
 Аватар для Денис Н.
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
29.08.2011, 02:28
Советую посмотреть в сторону Nested Sets
0
4 / 4 / 1
Регистрация: 29.07.2011
Сообщений: 41
29.08.2011, 02:31  [ТС]
Если я через ShowTree преобразовываю <li> <ul> в <table> (как в примере выше), то уровень вложенности теряется

http://s1.ipicture.ru/uploads/... 2wV3fv.png

Я даже не могу придумать как бы этот уровень вложенности показать в <table>

Добавлено через 2 минуты
Денис Н., Nested sets = вещь хорошая, но жутко замороченная...
Открыл http://www.getinfo.ru/article610.html и испугался не тот уровень проекта, чтобы заморачиватся с этим...
0
 Аватар для Денис Н.
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
29.08.2011, 02:43
Цитата Сообщение от crazy_man Посмотреть сообщение
Я даже не могу придумать как бы этот уровень вложенности показать в <table>
В таблице он отражен? Тогда &nbsp;-шками покажи
1
4 / 4 / 1
Регистрация: 29.07.2011
Сообщений: 41
29.08.2011, 03:12  [ТС]
Денис Н., не указан мда, теперь задачка получить уровень вложенности

Добавлено через 34 секунды
только id, parent_id, и is_node
0
 Аватар для Денис Н.
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
29.08.2011, 03:29
просто укажи его и все
1
4 / 4 / 1
Регистрация: 29.07.2011
Сообщений: 41
29.08.2011, 10:59  [ТС]
Цитата Сообщение от Денис Н. Посмотреть сообщение
просто укажи его и все
Спасибо, все получилось утро вечера мудренее...

Цитата Сообщение от Денис Н. Посмотреть сообщение
Тогда &nbsp;-шками покажи
Щас нашел... лучше так:
<td style="padding-left:{$margin}px;">
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.08.2011, 10:59
Помогаю со студенческими работами здесь

Структура в MySQL, дерево?
Доброго времени суток, уважаемые дамы и господа. В связи с неопытностью, хочу задать вопрос по структурированию базы данных. ...

Преобразовать таблицу департаментов в дерево
Дана структура таблиц 1. Employee – таблица сотрудников Имя|Тип данных|Обязательное|Описание EmployeeID|число|да|PK ...

сделать раскрывающее дерево списка
задали сделать электронный учебник с html документами. надо чтобы эти документы открывались через раскрывающее дерево и отображались в...

Дерево категорий из списка записей БД
Всем привет. Есть записи в DB список категорий. Загнал в массив: Array ( =&gt; Array ( ...

Составить дерево из списка отцов и детей.
Есть список отцов, для каждого отца перечислены все сыновья. Как по этим данным составить дерево? Прошу, помогите Т.е: 0: 1,6,7 1:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru