Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 деревья и опять деревья sql+perl  [new]
vidoq
Member

Откуда: Россия.
Сообщений: 93
народ скажите пожалуйста как вывести дерево на перл из данных sql.
я понимаю что это много уже обсуждалось, все что можно было прочел.
просто в программинге я не очень силен - только начинаю учиться, а дерево уже сейчас надо!
таблица есть такая

---------------------------------------------
|id|parent|url_menu| menu |url|s_url|level|
---------------------------------------------
|1| 0 |http://.|название |htt|http:| 0 |
...
|43|

получатся:
id - уникальный номер
parent - родитель \верхний =0 т.к. он без родителя\
url_menu - ссылка на меню
menu - название меню
url - первы файл
s_url - 2 файл
level - не знаю нужно ли это поле использовать, но по моей задумке оно используется для показа уровня меню, т.е. для подменю это 1, для подподменю это 2, итд... но по моему оно не нужно!

menu
|-podmenu
| |-podmenu of podmenu
menu2
menu3
menu4
|-podmenu

код такой 

use Win32::ODBC ;
use CGI ;
$q = new CGI ;

    print "Content-type: text/html\n\n"  ;
    print <<EOF ;
<html>
<head>
<title>site map axion.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	background-image: url(http://www.axion.com/samples/images/backgrnd.gif);
}
.style5 {font-size: 14px}
.style8 {
	color: #000000;
	font-weight: bold;
}
.style9 {color: #990000}
.style10 {font-weight: bold}
.style11 {color: #990000; font-weight: bold; }
.style12 {font-size: 14px; font-weight: bold; }
.style13 {color: #660000}
-->
</style></head>
<body>
EOF

#connecting to sql server -> to database
$DSN = 'SERVER=developer;DRIVER={SQL Server};DATABASE=alb;' ;
if (!($O = new Win32::ODBC($DSN))){
	print "Failure. \n\n";
	print Win32::ODBC::Error();
	exit();
}
print "(id)\n\n\n\n(menu)\n\n\n\n\n(parent)<br>";
if (! $O->Sql("select * from menu where parent='$parent' order by parent, level")){
	while($O->FetchRow()){
 	undef %Data;
        %Data = $O->DataHash();

        $x = $parent <= 0;
        $x = "";
if ($x <= 0) {
print "($Data{'id'})"; print "$Data{'menu'}($Data{'parent'})\n<br>";
return $x 
}  else 
         {
return ($x-1)*$x
}

короче здесь что то не то, как правильно нарисовать меню, со всеми его подменю?!

+ в базе у меня значения разбросанны как попало.
т.е. меню находится в верху базы, а вот подменю может быть в самом низу с id=49
это ничего страшного!?

+ хотелось бы создать форму для добавления меню в sql таблицу.
т.е. для изменения!
18 май 05, 09:02    [1549963]     Ответить | Цитировать Сообщить модератору
 Re: деревья и опять деревья sql+perl  [new]
Roman S. Golubin
Member

Откуда: 140002
Сообщений: 11541
vidoq

+ в базе у меня значения разбросанны как попало.


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

В тексте на своей странице вызывай эту функцию со значением параметра родителя 0.

--
Удачи,
Роман С. Голубин
18 май 05, 09:49    [1550081]     Ответить | Цитировать Сообщить модератору
 Re: деревья и опять деревья sql+perl  [new]
vidoq
Member

Откуда: Россия.
Сообщений: 93
хм... тоже самое мне и мой начальник говорил, только я к нему еще раз подходить с этим вопросом боюсь!
вот и приходится сидеть на форуме искать ответы...

ты не можешь примерный код написать...plz!
18 май 05, 10:13    [1550215]     Ответить | Цитировать Сообщить модератору
 Re: деревья и опять деревья sql+perl  [new]
Roman S. Golubin
Member

Откуда: 140002
Сообщений: 11541
vidoq
хм... тоже самое мне и мой начальник говорил, только я к нему еще раз подходить с этим вопросом боюсь!
вот и приходится сидеть на форуме искать ответы...

ты не можешь примерный код написать...plz!


Звиняй. В перле я не силен.
18 май 05, 10:15    [1550230]     Ответить | Цитировать Сообщить модератору
 Re: деревья и опять деревья sql+perl  [new]
Glory
Member

Откуда:
Сообщений: 104760
vidoq
хм... тоже самое мне и мой начальник говорил, только я к нему еще раз подходить с этим вопросом боюсь!
вот и приходится сидеть на форуме искать ответы...

ты не можешь примерный код написать...plz!

Для Perl есть свой форум
18 май 05, 10:16    [1550235]     Ответить | Цитировать Сообщить модератору
 Re: деревья и опять деревья sql+perl  [new]
XM
Member

Откуда: ненадолго из запоя
Сообщений: 1264
тынц
18 май 05, 10:43    [1550398]     Ответить | Цитировать Сообщить модератору
 Re: деревья и опять деревья sql+perl  [new]
vidoq
Member

Откуда: Россия.
Сообщений: 93
блин не зню уже куда писать, ну раз в перл переместили, то давайте там общаться!!! Жмем сюда!!!
18 май 05, 12:48    [1551068]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить