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

Показать сообщение отдельно

Аватара для 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