Xwab
Форумыnavigate_nextПрограммирование на PHP

Вложенность категорий
Сообщения
EmptyZero

Вот так я вывожу категории до третьего уровня вложености:

<select name="c_id" class="al-l">
<option value="0">Начало</option>
<?php foreach ($categories as $key => $value): if ($value['cid'] == 0): ?>
<option value="<?=$key;?>">&nbsp;<?=$value['name'];?></option>
<?php foreach ($categories as $key2 => $value2): if ($value2['cid'] == $key): ?>
<option value="<?=$key2;?>">&nbsp;&nbsp;&nbsp;-&nbsp;<?=$value2['name'];?></option>
<?php foreach ($categories as $key3 => $value3): if ($value3['cid'] == $key2): ?>
<option value="<?=$key3;?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;<?=$value3['name'];?></option>
<?php endif; endforeach; ?>
<?php endif; endforeach; ?>
<?php endif; endforeach; ?>
</select>

=================

Может посоветуете как лучше сделать? Потому что мой гк как-то не очень устраивает. И если вложенность больше - пример выше, не вариант чтобы его использовать


__________
посл.ред. 11 Июл 2012, 14:48; всего 1 раз 11 Июл 2012, 14:39
Diversant

Тема сложная, напрямую зависит от задачи.
Если тебе не нужно 25 уровней вложенности, не надо городить бесконечную вложенность. Проверено.
Число элементов считать заипешся, удаление и изменение будут тормозными и сложными.
При ограниченной вложенности эти операции сильно упрощаются.
Итого: все зависит от задачи.

11 Июл 2012, 14:47
EmptyZero

Diversant, Пускай будет ограниченой вложенности. например: максимум 3-го уровня

11 Июл 2012, 14:49
IceJOKER

Тоже интересно..
Читал статью про бесконечную вложенность, но не осилил

11 Июл 2012, 15:03
EmptyZero

Шаг №1: Извлекаем все категории из БД.
$query = mysql_query('SELECT * FROM `cat` ORDER BY `name`');
Шаг №2: Присваеваем переменной-массиву эти категории
$result = array();
while ($cat = mysql_fetch_array($query)) {
$result[$cat['id']] = array('name' => $cat['name'], 'cid' => $cat['cid']);
}

11 Июл 2012, 15:19
Diversant

Единственный плюс неограниченной вложенности - милый адрес вида ololo.php/?id=5374.
И то, короткий ид в таблице можно завести и при ограниченной вложенности

11 Июл 2012, 15:26
Ответить на тему