Как поместить значения таблицы в одну строку?
<?php
require_once "connect.php";
$query = mysqli_query($db,
"SELECT products.name, products.description, products.price, categories.category
FROM products
LEFT JOIN product_category ON product_category.product_id=products.id
LEFT JOIN categories ON product_category.category_id=categories.id");
?>
<table>
<tr>
<th>Продукт</th>
<th>Описание</th>
<th>Цена</th>
<th>Категория</th>
</tr>
<? while($val = mysqli_fetch_assoc($query)){?>
<tr>
<td>
<?=$val['name']?>
</td>
<td>
<?=$val['description']?>
</td>
<td>
<?=$val['price']?>
</td>
<td>
<?=$val['category']?>
</td>
</tr>
<?}?>
</table>
Я хочу, что-бы похожие категории были в 1 линию(т.е. есть продукт Водка, он относится и к продуктам и к алкоголю, и Я хочу, что бы эти две категории были в 1 линию, а не дублировали продукты). Но не могу понять как это сделать.
Ответы (2 шт):
Автор решения: Red
→ Ссылка
Я так понял необходимо групировка товара по полю продукт. Помечаешь выведенную ['name'] в отдельную переменную, далее сраниваешь новую ['name'] с прошлой, если совпадают то выводишь только ['categori']. иначе выводишь следующую строку.
Автор решения: Red
→ Ссылка
<table>
<tr>
<th>Продукт</th>
<th>Описание</th>
<th>Цена</th>
<th>Категория</th>
</tr>
<? $timed_val = ""?>
<? while($val = mysqli_fetch_assoc($query)){?>
<?if $timed_val != $val['name']{?>
<tr>
<td>
<?=$val['name']?>
</td>
<td>
<?=$val['description']?>
</td>
<td>
<?=$val['price']?>
</td>
<td>
<?=$val['category']?>
</td>
</tr>
<? $timed_val = $val['name'] ?>
<? }else{ ?>
<td>
<?=$val['category']?>
</td>
<?}}?>
</table>
Возможно где-то опечатался, сейчас не начем проверить работоспособность.
