Всем привет. Есть такой вот массив.
Array (
0 => Array ([tav_title] => 'Для Женщин', [tac_title] => 'Для кого' ),
1 => Array ([tav_title] => 'Серебро 925', [tac_title] => 'Металл' ),
2 => Array ([tav_title] => 'Фианит', [tac_title] => 'Вставка' ),
3 => Array ([tav_title] => 'Горный хрусталь' [tac_title] => 'Вставка' ),
4 => Array ([tav_title] => 'SOKOLOV' [tac_title] => 'Бренд'),
);
Вывожу его вот так:
<?php foreach ($res as $item):?>
<b><?= $item['tac_title'] ?></b>: <?= $item['tav_title'] ?><br>
<? endforeach;?>
Выглядит он так:
Для кого: Для Женщин
Металл: Серебро 925
Вставка: Фианит
Вставка: Горный хрусталь
Бренд: SOKOLOV
Как видно, поле вставка повторяется несколько раз, а значение разное. Как можно вывести вот так?
Для кого: Для Женщин
Металл: Серебро 925
Вставка: Фианит, Горный хрусталь
Бренд: SOKOLOV
Если поможет, то ниже MySql запрос.
SELECT `t_a_v`.`title` AS 'tav_title', `t_a_c`.`title` AS 'tac_title'
FROM `tm_attr_value` AS `t_a_v`
LEFT JOIN `tm_attr_category` AS `t_a_c`
ON `t_a_c`.`id` = `t_a_v`.`id_attr_category`
WHERE `t_a_v`.`id` = '$attrValue'
В таких случаях я всегда делаю, предподготовку данных перед выводом:
$result = [ // результат выполнения sql
0 => Array ([tav_title] => 'Для Женщин', [tac_title] => 'Для кого' ),
1 => Array ([tav_title] => 'Серебро 925', [tac_title] => 'Металл' ),
2 => Array ([tav_title] => 'Фианит', [tac_title] => 'Вставка' ),
3 => Array ([tav_title] => 'Горный хрусталь', [tac_title] => 'Вставка' ),
4 => Array ([tav_title] => 'SOKOLOV', [tac_title] => 'Бренд'),
];
// подготовка данных
$data = [];
foreach($result => $item) {
$data[$item[tac_title]] = $item[tav_title];
}
// таким образом получу подходящий массив $data:
// 'Для кого' => 'Для Женщин',
// 'Металл' => 'Серебро 925',
// 'Вставка' => ['Фианит', 'Горный хрусталь'],
// 'Бренд' => 'SOKOLOV',
// вывод
<?php foreach ($data as $key => $value):?>
<b><?= $key ?></b>:
<?php if (is_array($value)) {
foreach($value as $elem) {
echo $elem.',';
}
} else {
echo $value;
}
?><br>
<? endforeach;?>
Попробуйте так:
SELECT t_a_c.title as tac_title, GROUP_CONCAT(DISTINCT t_a_v.title ORDER BY t_a_v.title ASC SEPARATOR ', ') AS tav_title
FROM tm_attr_value t_a_v
LEFT JOIN tm_attr_category t_a_c ON t_a_c.id = t_a_v.id_attr_category
WHERE t_a_v.id = '$attrValue'
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В базе хранится дата и время в виде 2012-09-25 12:31:130 Правильно я понимаю, что на самом деле содержимое просто так отображается, но хранится в формате...
Когда я пытался вывести данные из таблицы в бд, в таблицу на странице сайта, то столкнулся нос в нос с проблемой вывода тк
Всем привет! Прошу прощения за глупую формулировку вопроса! Не придумал лучшеТяжело описать вопрос поэтому я его нарисовал) Надеюсь поймете!...