Forum Webscript.Ru

Программирование => PHP => Тема начата: stanlee от 04 Июля 2005, 08:43:08

Название: вопрос2 по древку Nested Set
Отправлено: stanlee от 04 Июля 2005, 08:43:08
кто нить сталкивался с сортировкой разделов на уровне?
чтот не разбежишься тама в этом плане
Название: вопрос2 по древку Nested Set
Отправлено: stanlee от 05 Июля 2005, 11:38:57
мдя такое ощущение что на них никто не работает
либо никто не сортирует  :)
Название: вопрос2 по древку Nested Set
Отправлено: Макс от 05 Июля 2005, 16:36:15
добавлять новое поле sort и вручную сортировать.
Можно еще перемещать узлы ввех/вниз в пределах одного родителя
Название: вопрос2 по древку Nested Set
Отправлено: stanlee от 05 Июля 2005, 21:17:30
в пределах одного родителя - этоя знаю
а вот в пределах уровня не так все просто


я хотел выводить все одним запростом ан нет придется еще сортировать дополнительно после запроса - гемор какой то



блин я снова вляпался
не могу скрыть полный уровень если он не нужен
при выводе дерева :(((((((((

помогите :((((((((( плиз
Название: вопрос2 по древку Nested Set
Отправлено: Макс от 06 Июля 2005, 12:11:35
чем помочь ?
В твоем последнем сообщении только жалобы и ни одного вопроса
Название: вопрос2 по древку Nested Set
Отправлено: stanlee от 06 Июля 2005, 14:59:06
такие вот дела

делается запрос
SELECT page_id, page_left, page_right, page_name, page_level, visible FROM pages WHERE page_left >= 1 AND page_right <= 132 ORDER BY page_left

потом данные загоняются в массив

for ($i=0; $i < $data_count; $i++) {
   $data[] = mysql_fetch_assoc($result);
}

и массив прогоняется в карту
for ($i=0; $i < $data_count; $i++) {
...
print $data[$i][page_name];
...
}

так вот есть поле в базе которое отвечает за скрытие раздела (visible)
но у меня не получается захватывать вместе с разделом его детей :( при выводе дерева

вот и выводит непонятно что :(
Название: вопрос2 по древку Nested Set
Отправлено: sarutobi от 06 Июля 2005, 19:33:39
stanlee
Цитировать
так вот есть поле в базе которое отвечает за скрытие раздела (visible)

Интересен тайный смысл сего действа...
Решение которое напрашивается сразу же ( и при этом претендует на оптимизацию :) )

$res = mysql_query("select page_left, page_right from pages where visible=false");
$closed[] = mysql_fetch_assoc($res);
foreach($closed as $range)
  $where[] = " page_left < " .$range["page_left"] . " and page_right >" . $range["page_right"] ;
$right_query = "SELECT page_id, page_left, page_right, page_name, page_level, visible FROM pages WHERE page_left >= 1 AND page_right <= 132 and ". join (" and ", $where)." ORDER BY page_left";
Примерно так....