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

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Помогите с созданием древовидной базы данных

Ответить
Настройки темы
Помогите с созданием древовидной базы данных

Пользователь


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


Конфигурация

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


Здраствуйте.
Нужно на PHP + MySQL создать древовидную базу данных с возможностью просмотра, а так же изменения и редактирования по паролю.. Так как я новичок в этой области, то подскажите пожалуйтса действительно полезеные статьи и учебные материалы. А то скачивать и рыться в толстенных книгах как то не очень хочеться.
Заранее спасибо ! )

Отправлено: 20:50, 29-03-2007

 
mar mar вне форума

Аватара для mar

just mar


Moderator


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

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


ssdm
для реализации древообразной структуры очень советую почитать статьи на тему - деревья nested sets. Почитайте теорию. Если будут вопросы по реализации - задавайте, у меня были работающие варианты для mysql.
Если же вложение неглубоко и детерминировано, могу посоветовать вариант с рангами (в смысле могу описать и найти свои старые статьи)

Отправлено: 22:14, 29-03-2007 | #2



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

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


Аватара для Arrest

runs with scissors


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

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


ssdm
древовидная БД - эта такая, в которой у каждой записи есть 2 обязательных параметра: id(id# элемента) и up_id(id# элемента, стоящий выше уровнем). Тогда можно вот такое:
Код: Выделить весь код
id|up_id|  data
0 |   0 |    корень
1 |   0 |    ветвь1
2 |   1 |    ветвь1->ветвь2
3 |   0 |    ветвь3
обозначает дерево:
Код: Выделить весь код
корень
|                 \
ветвь1        ветвь3
|
ветвь2
условимся что если id = up_id - это корень.

Выборка всех элементов под ветвью с id=0:
PHP код: Выделить весь код

SELECT FROM `drevoidnaya_tablWHERE up_id 0

Просмотр дерева до элементN:
PHP код: Выделить весь код

$target="элементN";

$sqlres=mysql_fetch_assoc(mysql_query("SELECT * FROM `drevoidnaya_tabl` WHERE data = ".$target.";"));
$way[0]=$sqlres['up_id'];
if(
$way[0]==$sqlres['id']){
    echo(
$way[0]);
    die;
}
while(
$sqlres['id']!=$sqlres['up_id']){
//  $way[]=$sqlres['data']; //лог, если он - нужен foreach для вывода
    
echo($sqlres['data']."<br />\n"); //вывод
    
$sqlres=mysql_fetch_assoc(mysql_query("SELECT * FROM `drevoidnaya_tabl` WHERE id = ".$sqlres['id'].";"));


Это можно упростить, если в каждый элемент добавлять путь до него.
Скрипты примерные, если не работают - подгоняй напильником

Дальше сделаешь сам

Последний раз редактировалось Arrest, 30-03-2007 в 12:10.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:24, 29-03-2007 | #3


Пользователь


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

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


mar,Arrest спасибо за помощь... решил использовать nested sets.
Правда в процессе работы возник такой глупый вопрос: как нажав на кнопку(не форму) заставить выподняться какой нить PHP - блок?

Отправлено: 12:30, 30-03-2007 | #4

mar mar вне форума

Аватара для mar

just mar


Moderator


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

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


Цитата:
возник такой глупый вопрос: как нажав на кнопку(не форму) заставить выподняться какой нить PHP - блок?
если честно, вопрос просто непонятен

Отправлено: 15:33, 30-03-2007 | #5


Пользователь


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

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


Цитата:
сли честно, вопрос просто непонятен
да вроде уже сам разобрался )

Другой вопрос : в файле index.php я создаю соединение с БД
Цитата:
$db=mysql_connect("localhost","root");
, далее выполняеться файл 1.php. Надо создавать новое соединение с БД? Если да , то что делать со старым?

Последний раз редактировалось ssdm, 30-03-2007 в 16:16.


Отправлено: 16:01, 30-03-2007 | #6

mar mar вне форума

Аватара для mar

just mar


Moderator


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

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


если новый файл включен в первый, то ничего создавать не надо.
Соединение закрывают командой: mysql_close($db);
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:54, 30-03-2007 | #7



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Помогите с созданием древовидной базы данных

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие БД - 1C: Предприятие. Слетела Windows, помогите восстановить базы данных! roofwalker87 Программирование и базы данных 3 20-10-2008 20:26
.NET - c# и базы данных den25 Программирование и базы данных 1 09-11-2004 08:07
Базы данных zxlMORF Программирование и базы данных 1 04-01-2004 15:26
Выбор из базы данных victory Вебмастеру 9 24-07-2003 19:34
базы данных DBM Vlad Drakula Вебмастеру 1 25-06-2003 23:03




 
Переход