У меня есть этот sql-запрос, чтобы получить данные из 2 таблиц и объединить их на основе соответствующего идентификатора.
SELECT *
FROM bar_items
LEFT JOIN bar_cats ON
bar_cats.cat_id = bar_items.categories
ORDER BY bar_items.categories,
bar_items.item_name ASC
Что дает мне этот результат
![enter image description here](https://i.stack.imgur.com/UKmWm.png)
Сейчас я пытаюсь отобразить их в категориях с названием категории в качестве заголовка для каждой категории.
У меня есть этот код с помощью старого сообщения о переполнении стека: здесь
$data = array();
foreach($results_lists as $row){
$data[$row['cat_name']][$row['item_name']]['item_name'] = $row['item_name'];
$data[$row['cat_name']][$row['item_price']]['item_price'] = $row['item_price'];
$data[$row['cat_name']][$row['item_image']]['item_image'] = $row['item_image'];
} foreach($data as $category => $events){
echo $category.'<br>';
foreach($events as $event){
echo ' <> '.$event['item_name'].'<br>';
echo ' <> '.$event['item_price'].'<br>';
echo ' <> '.$event['item_image'].'<br>';
}
но он ведет себя не так, как мне нужно, и отображается так: (обратите внимание на пустые строки <> и далее по списку не отображаются некоторые цены, даже если они возвращаются в запросе )
Beer and Bitter
<> John Smiths
<>
<>
<>
<> 2.50
<>
<>
<>
<> 1556315986_john-smiths.jpg
<> Sam Smiths
<>
<>
<>
<> 2.15
<>
<>
<>
<> 1556316430_Samuel_Smith_Brewery_logo.png
<> Stones
<>
<>
<>
<>
<> 1556316361_stones.jpg
<> Tetleys
<>
<>
<>
<>
<> 1556315794_tetleys.jpg
Lager
<> Bud Light
<>
<>
<>
<> 2.50
<>
<>
<>
<> 1556316641_bud-light.png
<> Carling
<>
<>
<>
<>
<> 1556316497_carling-white-011.png
<> Fosters
<>
<>
<>
<>
<> 1556316197_fosters.png
Cider
<> Strongbow
<>
<>
<>
<> 2.50
<>
<>
<>
<> 1556316131_Strongbow-Logo-1.png
EDIT:
Когда я печатаю массив, я получаю это:
Array
(
[Beer and Bitter] => Array
(
[John Smiths] => Array
(
[item_name] => John Smiths
)
[2.50] => Array
(
[item_price] => 2.50
)
[1556315986_john-smiths.jpg] => Array
(
[item_image] => 1556315986_john-smiths.jpg
)
[Sam Smiths] => Array
(
[item_name] => Sam Smiths
)
[2.15] => Array
(
[item_price] => 2.15
)
[1556316430_Samuel_Smith_Brewery_logo.png] => Array
(
[item_image] => 1556316430_Samuel_Smith_Brewery_logo.png
)
[Stones] => Array
(
[item_name] => Stones
)
[1556316361_stones.jpg] => Array
(
[item_image] => 1556316361_stones.jpg
)
[Tetleys] => Array
(
[item_name] => Tetleys
)
[1556315794_tetleys.jpg] => Array
(
[item_image] => 1556315794_tetleys.jpg
)
)
[Lager] => Array
(
[Bud Light] => Array
(
[item_name] => Bud Light
)
[2.50] => Array
(
[item_price] => 2.50
)
[1556316641_bud-light.png] => Array
(
[item_image] => 1556316641_bud-light.png
)
[Carling] => Array
(
[item_name] => Carling
)
[1556316497_carling-white-011.png] => Array
(
[item_image] => 1556316497_carling-white-011.png
)
[Fosters] => Array
(
[item_name] => Fosters
)
[1556316197_fosters.png] => Array
(
[item_image] => 1556316197_fosters.png
)
)
[Cider] => Array
(
[Strongbow] => Array
(
[item_name] => Strongbow
)
[2.50] => Array
(
[item_price] => 2.50
)
[1556316131_Strongbow-Logo-1.png] => Array
(
[item_image] => 1556316131_Strongbow-Logo-1.png
)
)
)
Где я иду не так?
Спасибо.