Здравствуйте. Поставлена задача, вытащить из ДБ некий список с категориями. Имеется 2 таблицы. Первая таблица (menu_categories) хранит категории: id и category_name. Вторая (menu_items) хранит пункты меню: id , номер категории для пункта (item_category) и item_name.
Задача вывести список, в котором по категориям разбиты пункты. То бишь идет первая категория и все пункты, которые относятся к ней, потом вторая и тд.
Сейчас имеется такой вот код. Проблема в том, что с выводом категорий проблем нет, а вот с выводом пунктов в эти категории и возникает вся морока.
$categories_list = mysql_query("
SELECT id, category_name
FROM menu_categories
");
// получаем все записи из таблицы menu_categories
while($category = mysql_fetch_array($categories_list))
{
echo '<li>'.$category["category_name"].'</li>';
echo '<ul>';
// получаем все записи из таблицы menu_item, которые соответствуют категории данного цикла
$item_list = mysql_query(sprintf("
SELECT item_name, item_category
FROM menu_items
WHERE EXISTS (
SELECT id
FROM menu_categories
WHERE menu_items.item_category = menu_categories.%s
)
", $category["id"]
));
while($item = mysql_fetch_array($item_list))
{
echo '<li>'.$item["item_name"].'</li>';
};
echo '</ul>';
};
Запрос:
Select c.id, c.category_name, i.item_name
From menu_categories c
Left join menu_items i on i.item_category = c.id
Order by c.id
Алгоритм примерно такой:
$full_list = mysql_query("
Select c.id, c.category_name, i.item_name
From menu_categories c
Left join menu_items i on i.item_category = c.id
Order by c.id
");
$current_c_id = 0;
echo '<ul>';
while($entity = mysql_fetch_array($full_list))
{
$c_id = $entity["id"];
if($current_c_id != $c_id)
{
if(current_c_id != 0) echo '</ul>';
echo '<li>'.$entity["category_name"].'</li>';
echo '<ul>';
$current_c_id = $c_id;
}else
{
echo '<li>'.$entity["item_name"].'</li>';
}
}
echo '</ul></ul>';
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеЕсть папка reports, в ней есть файлы report-(номер отчета)
Как не допускать сортировку ключей объекта при записи в бд MySQL JSON? Есть много вещей где сохранение порядка ключей очень важноНапример другие...
Всем приветВсю голову сломал, помогите советом
Из 1с получается выгрузить данний на сайт но обратно не знаю как правильно создать xml файл,Заказы