есть таблица категории
id | title | published
и таблица подарков
id | title | category_id | published
как вывести подарки группируя по категориям во так
категория
--подарок
--подарок
категория 2
пробовал так , но выводит по одному
SELECT * FROM `presents` p
left join `category_presents` cp on p.category_present_id = cp.id
where cp.`published` = 1 and p.`published`=1 group by cp.title
Group by в SQL это не такая группировка. Результаты выборки это множество строк, а не дерево. Выбирайте без group by, а дерево формируйте на PHP.
Пример кода
select
`presents`.*,
`category_presents`.`title` as `category_title`
from `presents`
join `category_presents` on
`category_presents`.`id` = `presents`.`category_id`
where
`presents`.`published` = 1
and `category_presents`.`published` = 1
Получите строки:
id | title | category_id | published | category_title
Теперь в дело идёт php или js (что удобнее для вашей задачи)
$presentsByCategory = [];
foreach ($rows as $row) {
if ( ! isset($presentsByCategory[$row['category_id']])) {
$presentsByCategory[$row['category_id']] = (object) [
'id' => $row['category_id'],
'title' => $row['category_title'],
'presents' => [],
];
}
$presentsByCategory[$row['category_id']]->presents[] = $row;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Помогите решить вопрос с отображением страницы, не могу понять в чем проблемаИногда страница отображается в таком формате
Я написал программу на javafxКак мне открыть в консоли jar?