Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сохранить parent от предыдущих своих разделов
 
 автор: Terri   (06.08.2006 в 13:00)   письмо автору
 
 

имеется стандартная структура разделов id parent name и есть ещё одно поле parents
количество уровней неограничено, нужно какимто образом через цикл пройтись по разделам и для каждого раздела сохранить parent к которому данный раздел привязан(сохранить в поле parents), так чтобы допустим третий уровень будет иметь 1_2 тоесть один это id первого раздела, два это второго раздела, и так далее, чередуясь через знак подчёркивания.

Тоесть мне нужно на конечном подразделе знать каким подразделам/разделу он привязан

   
 
 автор: cheops   (06.08.2006 в 15:24)   письмо автору
 
   для: Terri   (06.08.2006 в 13:00)
 

Обычно для этого используют рекурсивную функцию (вызывающую саму себя) - посмотрите тему по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=21904, если будет что-то не понятно, спрашивайте.

   
 
 автор: Terri   (07.08.2006 в 14:31)   письмо автору
 
   для: cheops   (06.08.2006 в 15:24)
 

спасибо, но это не то, там решается вопрос вывода разделов, а мне нужно сохранить в отдельном поле parents айди номера своих родителей. Алгоритм разделов я взял со скрипта
osCommerce, там если может видели, допустим третий уровень раздела имеет такой вид ссылки 1_2_3 вот именно эту строчку мне нужно сохранить в поле parents. К примеру 5 уровень бует иметь 1_2_3_4_5 а допустим второй уровень имеет такой 1_2 ну и т.п

вот код что я делал


    $sql_result = $db->q("SELECT " . PREFIX . "category.* FROM " . PREFIX . "category where id ='".$caty['id']."'");
    $row = $db->mysql_assoc($sql_result);
    $sql_result2 = $db->q("SELECT " . PREFIX . "category.* FROM " . PREFIX . "category where id ='".$row['parent_id']."'");
    $row2 = $db->mysql_assoc($sql_result2);

    $db->q("UPDATE '" . PREFIX . "category' set parents='' where id ='".$caty['id']."'");
    $db->q("UPDATE '" . PREFIX . "category' set parents='".$row2['parents']."_".$caty['id']."' where id ='".$caty['id']."'");



правдо этот код помещён внутри цикла который проходит по всем разделам, суть такова, при проходе первого уровня сохраняется ид этого раздела в поле parents и будет иметь такой вид 1 далее после прохода второго уровня значения первого раздела из parents сохраняется ковторому уровню раздела тогда он будет иметь такой вид 1_2 и так далее всё выше и выше по уровню чередуясь символом _ Но почемуто в некоторых разделах нет айди родителя а где нормально

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования