Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Дерево ссылок с неограниченным числом вложений

Ответить
Настройки темы
Дерево ссылок с неограниченным числом вложений

Ветеран


Сообщения: 1792
Благодарности: 115

Профиль | Отправить PM | Цитировать


нужно дерево ссылок, как в реестре, с возможностью добалять неограниченно вложенные подразделы
хотя бы идею как сделать?
я делал но с вложенностью до 3х, три таблички в каждой табличке пишется ссылка на другую, а тут нужно создавать много таблиц динамически получается?

Отправлено: 20:00, 27-08-2009

 

Вредитель


Сообщения: 460
Благодарности: 126

Профиль | Отправить PM | Цитировать


Можно создать таблицу с 3 полями: ID, ID "родителя", ссылка.

-------
Все сказаное является только моим личным мнением.


Отправлено: 22:58, 27-08-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1792
Благодарности: 115

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: gif table.gif
(7.6 Kb, 3 просмотров)
Тип файла: gif image.gif
(919 байт, 3 просмотров)

id | ud_parent | ud_current | time_create | nazvanie | status |

id - autoincrement
ud используются потому что хочется понятные имена подразделов, а не цифры id
status 1 - ветка дерева развёрнута, 0 - ветка дерева свёрнута

сделал в одной таблице table.gif image.gif , но сейчас непонятно как отобразить это дерево,
получается опять нужно писать бесконечно вложенный код, этот код отобразит только верхний уровень, а для каждого вложенного уровня чё новый писать, или как-нибудь функцией может написать

PHP код: Выделить весь код

echo("<!-- razdel -->");


$result mysql_query ("SELECT * FROM razdel ORDER BY `id` ASC",$db);
$myrow mysql_fetch_array ($result);

do

if (
$myrow['ud_current'] == $razdel)

{


  if (
$myrow['status'] == 0// в зависимости от status отображает plus или minus
  
{
  echo(
"
  <a href='$pathdomain/?razdel=$razdel&status=1&status_target=$myrow[ud_current]'><image src='/img/plus.gif' style='float:left; margin: 4px 10px 0px 0px;'></a>
  "
);
  }
  else
  {
  echo(
"
  <a href='$pathdomain/?razdel=$razdel&status=0&status_target=$myrow[ud_current]'><image src='/img/minus.gif' style='float:left; margin: 4px 10px 0px 0px;'></a>
  "
);
  }


echo(
"
<div class='conteiner_link_1_current'>
$myrow[nazvanie] <a href='$pathdomain/?razdel=$myrow[ud_current]' class='add_razdel' onClick='openwindow = window.open(\"add_razdel.php\", \"add_razdel\", \"toolbar=0,width=360,height=150\"); openwindow.focus();' title='Добавить раздел'>*</a>
</div>
"
);

}
else
{


  if (
$myrow['status'] == 0// в зависимости от status отображает plus или minus
  
{
  echo(
"
  <a href='$pathdomain/?razdel=$razdel&status=1&status_target=$myrow[ud_current]'><image src='/img/plus.gif' style='float:left; margin: 4px 10px 0px 0px;'></a>
  "
);
  }
  else
  {
  echo(
"
  <a href='$pathdomain/?razdel=$razdel&status=0&status_target=$myrow[ud_current]'><image src='/img/minus.gif' style='float:left; margin: 4px 10px 0px 0px;'></a>
  "
);
  }


echo(
"
<div class='conteiner_link_1'>
<a href='$pathdomain/?razdel=$myrow[ud_current]'>$myrow[nazvanie]</a>
</div>
"
);

}

while (
$myrow mysql_fetch_array ($result));




echo(
"<a href='#' onClick='openwindow = window.open(\"add_razdel.php\", \"add_razdel\", \"toolbar=0,width=360,height=150\"); openwindow.focus();' title='Добавить раздел'>Добавить раздел</a>");


echo(
"<!-- razdel -->"); 


Отправлено: 22:11, 29-08-2009 | #3


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Для отображения воспользоваться рекурсией (надеюсь, правильно алгоритм составил):
Код: Выделить весь код
запрос_элементов_уровня(х) // изначально x=0, но при рекурсивном вызове будет увеличиваться
{ // начало функции
запросить_строки(x);
цикл_по_всем_выданным_результатам 
       {
       если_уровень_не_самый_нижний // ведь метка в таблице будет?
            {
            вывести_текущую_строку_с_отступом(x); // и соответствующим JavaScript'ом
            запрос_элементов_уровня(x+1);
            }
       иначе // уровень нижний
            {
            вывести_ссылку_с_отступом(x); // без JS уже
            return;
            }
       }
} // конец функции
Разве в интернете нет готовых функций?


Но, быть может, использовать XML+XSLT? Думается мне, что мороки будет меньше.

Отправлено: 09:42, 30-08-2009 | #4



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Дерево ссылок с неограниченным числом вложений

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
автоматическое сохранение почтовых вложений Guest Сетевые технологии 4 03-06-2015 11:35
[решено] Где посмотреть список свойств ссылок (обычных ссылок интернета)? evg64 AutoIt 4 13-09-2009 13:41
Письма без вложений? kuc Сетевые технологии 2 19-09-2007 13:00
Проблема с числом пользователей JAZA Microsoft Windows NT/2000/2003 8 05-10-2006 15:09
(статья) Мультизагрузочный CD WinXP с неограниченным кол-вом конфигураций установки VseDoFeNi Автоматическая установка Windows 2000/XP/2003 1 14-09-2005 18:46




 
Переход