Столкнулся с такой проблеммой.
В магазине реализовал создание категорий и подкатегорий с неограниченым уровнем вложенности.
конечная категория содержит товар,который находится в другой таблице.
Собственно сам вопрос.
Подскажите или напишите алгоритм или код как можно например с первой категории узнать количество товаров в подкатегориях.
Можно циклами, что очень глупо.
Я лично создавал столбец в таблице например path и заносил в него путь к папке, в ЗЦ JohnCMS вроде также сделано.
Windler (15.03.2012/06:53)
Можно циклами, что очень глупо.
Я лично создавал столбец в таблице например path и заносил в него путь к папке, в ЗЦ JohnCMS вроде также сделано.
Всмысле путь к папке? Да и добавление нового поля уже не желательно ибо есть категории и товара много
localhost (15.03.2012/06:55)
Всмысле путь к папке? Да и добавление нового поля уже не желательно ибо есть категории и товара много
Написания скрипта который обновит таблицу не составит труда. Файлы как хранятся? Напиши прям с корня путь примерный.
Windler (15.03.2012/07:03)
Написания скрипта который обновит таблицу не составит труда. Файлы как хранятся? Напиши прям с корня путь примерный.
Ты видимо не понял.
Это магазин,
вот пример. в магазине есть разделы,они на главной,эти разделы ведут в подкаталоги,а те в свою очередь в еще одни подкаталоги и так далее.В конечном каталоге есть товары,описание и так далее этих товаров хранится в другой таблице.
Бесконечность каталогов и подкаталогов осуществляется за счет ид и рефид.
То есть каталог с ид 1 имеет подкаталоги с рефидом 1
Или циклом или создавать нормальную таблицу с учётом таких ньюансов.
localhost, собсна, такие вещи обдумываются до создания структуры системы. Как записывать файлы, каталоги, как связывать друг с другом. Оптимальный вариант это когда вся нужная инфа изначально в таблице, так и быдлоциклов писать не надо, и одним запросом всё тащится. Мой совет - подгоняй поля.
В общем вот этот быдло код вывода каталогов
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `chop` WHERE `refid`='" .
$id . "'"), 0);
if ($count)
{
$req = mysql_query("SELECT * FROM `chop` WHERE `refid`='$id'");
while ($res = mysql_fetch_array($req))
{
$t = mysql_fetch_assoc(mysql_query("SELECT * FROM `chop` WHERE `id`= '" .
$res['id'] . "' LIMIT 1"));
$ts = $t['type'];
if ($ts == 'k')
{
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `refid`='" .
$t['id'] . "'"), 0);
}
else
{
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `chop` WHERE `refid`='" .
$res['id'] . "'"), 0);
}
echo '<a class="menu" href="index.php?id=' . $res['id'] . '"><img src="/images/dir.png" alt="*"/> ' . checkout($res['name'],
1, 1) . ' [' . $count . ']</a>';
if ($rights >= 7)
if ($rights >= 7)
echo '<a class="delete" href="submit.php?id='.$res['id'] .'">X</a>';
if (!empty($res['opis']))
{
$text = $res['opis'];
$text = mb_substr($text, 0, 100);
$text = checkout($text, 1, 1);
#echo '<div class="sub"><span class="gray">' . $text .
# '</span></div>';
}
++$i;
}
}
else
{
echo '<div class="list">Каталог пуст</div>';
}
Перепишите пожалуйста,пусть даже и с быдло циклами,мне важен сам алгоритм посмотреть