<?php
include_once 'pdo.class.php';
$db = DB::getInstance();
function dd($var)
{
echo '<pre>';
var_dump($var);
echo '</pre>';
}
function type_name($key)
{
$array = [
'material' => 'Материал',
'type' => 'Тип поверхности',
'color' => 'Цвет',
'length' => 'Длина, м ',
'price' => 'Цена, руб/м2',
];
return $array[$key];
}
echo '
<style>
table, tr, td {
border: black solid 1px;
}
</style>
<br />
<table>
';
$product['id'] = 1;
$products_manufacturers = $db->query('
SELECT `products_manufacturers`.*, `manufacturers`.name AS `manufacturer_name` FROM `products_manufacturers`
LEFT JOIN `manufacturers` ON (`manufacturers`.id = `products_manufacturers`.manufacturer_id)
WHERE `product_id` = ? GROUP BY `products_manufacturers`.`manufacturer_id`, `products_manufacturers`.`id`
', [$product['id']])->fetchAll();
$data = [];
foreach ($products_manufacturers as $product_manufacturer) {
$json_data = json_decode($product_manufacturer['data'], true);
foreach ($json_data as $key => $value) {
$data[$key][] = ['value' => $value, 'id' => $product_manufacturer['id'], 'manufacturer_name' => $product_manufacturer['manufacturer_name']];
}
}
$keys = array_keys($data);
$count = count($keys);
$manufacturers = [];
foreach ($keys as $key) {
$manufacturers[$key] = '-';
}
$serialize_data = [];
foreach ($data as $key => $_value) {
foreach ($_value as $value) {
$serialize_data[$value['manufacturer_name']][$value['id']] = $manufacturers;
}
}
foreach ($data as $key => $_value) {
foreach ($_value as $value) {
$serialize_data[$value['manufacturer_name']][$value['id']][$key] = $value['value'];
}
}
echo '
<tr>
';
foreach ($keys as $value) {
echo '
<td>' . type_name($value) . '</td>
';
}
foreach ($serialize_data as $manufacturer => $products) {
echo '
<tr>
<td colspan="' . $count . '">' . $manufacturer . '</td>
</tr>
</tr>
';
foreach ($products as $product) {
echo '
<tr>
';
foreach ($product as $value) {
echo '
<td>' . $value . '</td>
';
}
echo '
</tr>
';
}
}
echo '
</table> count:
';
//{"material":"\u041f\u0412\u0425","type":"\u041c\u0430\u0442\u043e\u0432\u044b\u0439","color":"\u0411\u0435\u043b\u044b\u0439","length":"1,5-3,2","price":"\u043e\u0442 330"}
echo $db->countQuery;
?>