Здравствуйте. Поставлена задача, вытащить из ДБ некий список с категориями. Имеется 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>';
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
ЗдравствуйтеЕсть папка reports, в ней есть файлы report-(номер отчета)
Как не допускать сортировку ключей объекта при записи в бд MySQL JSON? Есть много вещей где сохранение порядка ключей очень важноНапример другие...
Всем приветВсю голову сломал, помогите советом
Из 1с получается выгрузить данний на сайт но обратно не знаю как правильно создать xml файл,Заказы