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

Форум PHP

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

 

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

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

тема: Разложить по полочкам(категории)
 
 автор: sl1p   (13.12.2009 в 01:58)   письмо автору
 
 

Подскажите идею.

Есть таблица категорий, тобишь неограниченое кол-во категорий, под-категорий и т.д.
Так же, есть таблица с инфой привязаной к #id категории. В поле хранится #id самой самой последней под-категории.
С помощью рекурсий я нахожу полный путь от самого начала если потребуется.

Задача такая:
Нужно с помощью <fieldset> разложить визуально инфу по порядку.

Например, имеем дерево категорий: cat_1 / cat_1_1 / cat_1_1_1.
Требуется вывести так:
<fieldset><legend>cat_1</legend>
    <fieldset><legend>cat_1_1</legend>
        <fieldset><legend>cat_1_1_1</legend>
            инфа...
        </fieldset>
    </fieldset>
</fieldset>


думаю смысл понятен.
Заметим что инфы и различий категорий много:)

Заранее спасибо за любые подсказки!

  Ответить  
 
 автор: Trianon   (13.12.2009 в 11:57)   письмо автору
 
   для: sl1p   (13.12.2009 в 01:58)
 

>Например, имеем дерево категорий: cat_1 / cat_1_1 / cat_1_1_1.

Это не дерево. У дерева один корень и куча листьев.

>думаю смысл понятен.

смысл непонятен.

Почему Вы экономите на формулировке проблемы?

  Ответить  
 
 автор: sl1p   (13.12.2009 в 13:00)   письмо автору
 
   для: Trianon   (13.12.2009 в 11:57)
 

не знаю просто как объяснить..
постараюсь показать на примере, когда давно было всего лишь х2-вложенность категорий.
<?
while($r mysql_fetch_assoc($res)) { // некая сортировка:)
    
$blocks[$r['cat']][$r['subcat']][] = $r;
}

foreach(
$blocks as $a => $b) {
    
$_CONTENT .= "<fieldset><legend>{$a}</legend>";
    
$bl = array();
    foreach(
$b as $c => $d) {
        if(
$a !== "") {
            
$_CONTENT .= "<fieldset><legend>{$c}</legend>";
        }
        foreach(
$d as $e) {    
            
$_CONTENT .= <<<TEXT
        info
TEXT;
            }
            if(
$a !== ""$_CONTENT .= "</fieldset>";
    }
    
$_CONTENT .= "</fieldset>";
}

  Ответить  
 
 автор: Trianon   (13.12.2009 в 13:12)   письмо автору
 
   для: sl1p   (13.12.2009 в 13:00)
 

таблицу Вы так и не показали.

Если там обычное id - parent_id, выводить дерево придется рекурсивной функцией.

  Ответить  
 
 автор: sl1p   (13.12.2009 в 13:28)   письмо автору
 
   для: Trianon   (13.12.2009 в 13:12)
 

Угу, именно так..
С моими объяснениями в помощь мне только я сам:))

попробую что-то сделать, спрошу совета здесь если что:)

  Ответить  
 
 автор: Trianon   (13.12.2009 в 13:52)   письмо автору
 
   для: sl1p   (13.12.2009 в 13:28)
 

а в поиск заглянуть?

Рекурсивный вывод

  Ответить  
 
 автор: sl1p   (13.12.2009 в 14:08)   письмо автору
 
   для: Trianon   (13.12.2009 в 13:52)
 

Рекурсию я понимаю, я так вывожу данные в массив и т.п.

Не могу именно разобраться..

Если идти от корня тогда вроде бы всё ясно.

А если в таблице с инфой хранится только #id самой самой последней категории к которой прикручена инфа то как-то не сильно:)
получается надо идти назад..

ладно спасибо:) Я покумекаю над этим)

  Ответить  
 
 автор: sl1p   (14.12.2009 в 03:32)   письмо автору
 
   для: sl1p   (13.12.2009 в 14:08)
 

эх.. никак не могу придумать:))
помогайте=(

есть допустим таблицы:
###категории
id    id_cat
1     0
2     0
3     0
4     0
5     1
6     5
7     6

###инфа
id    id_cat
1     2
2     5
3     7


как теперь это рекурсивно вывести через филдсеты?
тоесть самая самая внешняя "оболочка" должна быть самым корнем категории и так далее внутрь.

  Ответить  
 
 автор: sim5   (14.12.2009 в 04:30)   письмо автору
 
   для: sl1p   (14.12.2009 в 03:32)
 

А не ужасно ли это будет выглядеть, особенно заключенное в бордюры? Почему бы не:
<fieldset><legend>Раз :: Два :: Три</legend>
инфа...
</fieldset>
?

Собственно, если не хватает признаков для определения вложенности, то их можно добавить при запросе, тот же уровень вложения, например.

  Ответить  
 
 автор: sl1p   (14.12.2009 в 05:13)   письмо автору
 
   для: sim5   (14.12.2009 в 04:30)
 

Потому что может быть так:

<fieldset><legend>Раз</legend>
    инфа...
    <fieldset><legend>Раз :: Раз</legend>
        инфа...
        <fieldset><legend>Раз :: Раз :: Раз</legend> 
        инфа... 
        </fieldset>

        <fieldset><legend>Раз :: Раз :: Два</legend> 
        инфа... 
        </fieldset>

    </fieldset>

</fieldset>


Просто инфа эта выглядит как блок(примерно 120х120 px) с разными штуками) и их может быть много в одной категории.
Одним словом это редактор блоков, которые находятся по бокам контента, для админки.
Как по мне, так удобно.

  Ответить  
 
 автор: sl1p   (14.12.2009 в 15:24)   письмо автору
 
   для: sl1p   (14.12.2009 в 05:13)
 

тю, вот это я протупил:)
можно ведь идти по таблице категорий полностью:)
а я смотрел в сторону того чтобы отталкиваться от id_cat инфы :)

  Ответить  
Rambler's Top100
вверх

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