Forum Webscript.Ru

Общие => Базы данных => Тема начата: golden-den от 08 Сентября 2007, 22:52:19

Название: nested sets - соседние элементы
Отправлено: golden-den от 08 Сентября 2007, 22:52:19
есть структура nested sets.
модуль phpDBTree 1.4
При выводе инфы о конкретном элементе дерева иногда полезно  ставить ссылки "Предыдущий" - "Следующий".
Это соседи (level тот же).

Только вот как найти этих соседей?
В начале есть только cid элемента.
Название: nested sets - соседние элементы
Отправлено: html_coder от 09 Сентября 2007, 13:48:22
Цитировать
golden-den:
В начале есть только cid элемента.


Что такое cid - autoincrement ID?

Цитировать
golden-den:
В начале есть только cid элемента.


В начале чего?
Название: nested sets - соседние элементы
Отправлено: golden-den от 09 Сентября 2007, 15:18:58
html_coder
структура согласно модулю phpDBTree 1.4
(Я думал, может кто-то пользуется)
структура
CREATE TABLE `site` (
  `cid` int(16) unsigned NOT NULL auto_increment,
  `cleft` int(10) unsigned NOT NULL default \'0\',
  `cright` int(10) unsigned NOT NULL default \'0\',
  `clevel` int(10) unsigned NOT NULL default \'0\',
  PRIMARY KEY  (`cid`),
  KEY `cleft` (`cleft`,`cright`,`clevel`)
) TYPE=MyISAM


Короче выспался и сделал за 10 минут

select i.cid, d.title
from site i, site_data d, site p, site cur
where
  p.cleft < cur.cleft and p.cright>cur.cright and p.clevel=cur.clevel-1
  and i.cleft > p.cleft and i.cright < p.cright and i.clevel=p.clevel+1
  and i.cid=d.cid
  and cur.cid=$id
order by i.cleft