Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удаление разделов из дерева каталога 
V
    Опции темы
Igor_CH
Дата 19.10.2006, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Есть стандартная стукрура базы каталога
ID  TITLE  PID

Как организовать удаления Раздела с его подразделами, под подразделами, …?

PM MAIL   Вверх
skyboy
Дата 19.10.2006, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



запросом - никак(по крайней мере, при теоретически неограниченной глубине вложенности), можно ХП или на стороне клиента рекурсивно формировать запросы
PM MAIL   Вверх
Igor_CH
Дата 20.10.2006, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



сделал вот так, вроде работает:

Код

function get_tree($id){  
    $sql="DELETE FROM katalog WHERE id='$id' LIMIT 1"; 
    $result = mysql_query($sql);
    $sql = "SELECT * FROM katalog WHERE pid='$id'";  
    $ok = mysql_query($sql);  
    while ($row = mysql_fetch_array($ok)){  
        $level = $row['id'];  
        $sql="DELETE FROM katalog WHERE pid='$level' LIMIT 1"; 
        get_tree($row['id']); 
    }  
} 


Это сообщение отредактировал(а) Igor_CH - 20.10.2006, 10:21
PM MAIL   Вверх
Opik
Дата 21.10.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 2
Всего: 55



Igor_CH, 
Я бы в потомках хранил root родителя, тогда бы все удалялось 1 запросом.
PM MAIL Skype   Вверх
skyboy
Дата 21.10.2006, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Opik, а для потомков второго уровня - родителей первого и второго уровня? ты, наверное, просто не заметил: тут речь не об потомках первого уровня. Задача стоит об удалении всех потомков вне зависимости от "уровня вложенности". Да и функция - рекурсивная.
PM MAIL   Вверх
Nicholas_S
Дата 21.10.2006, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 12.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 19



Igor_CH, рекомендую посмотреть модель организации древовидной структуры "Nested set" (например, поиском в Гугле).
Имеет ряд плюсов, но и не без минусов. Задача, которую ты хочешь решить, выполняется просто, как и ряд других задач.


--------------------
...все в мире относительно
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.