Как расположить результат SQL-запроса с группой столбцов?

SELECT Product_type FROM product INNER JOIN product Product_type.typeid = product.pid
I have this sql query result list. This is exactly what i need.

--------------------------
Product_type  | Product
--------------------------
ProductType 1 | Poduct A
ProductType 1 | Poduct B
ProductType 1 | Poduct C
ProductType 1 | Poduct D
ProductType 2 | Poduct E
ProductType 2 | Poduct F
ProductType 2 | Poduct G
--------------------------

Теперь мой вопрос заключается в том, как получить список продуктов на основе типа продукта. Есть ли способ получить такой результат с помощью SQL-запроса?

Мне нужен вывод интерфейса, как показано ниже:

ProductType 1
| Product A
| Product B
| Product C
| Product D
ProductType 2
| Product E
| Product F
| Product G

Или как я могу сохранить результат в многомерном массиве на основе product_type. Может кто-нибудь помочь.

Большое спасибо заранее!

-1

Решение

Я получил решение из нашей дискуссии, оно может вам помочь.

Ваш запрос будет выглядеть так:

SELECT product_type.product_type, GROUP_CONCAT(products.product) AS pros FROM product_type LEFT JOIN products ON product_type.id = products.product_type_id GROUP BY product_type.id

Это даст вам вывод, как показано ниже:

$result_arr = array(
array(  'product_type'=>'ProductType 1',
'pros'=>'product A, product B, product C'),
array(  'product_type'=>'ProductType 2',
'pros'=>'product D, product E, product F')
);

Затем вы можете манипулировать этим выводом, как показано ниже:

foreach($result_arr as $key=>$val){
echo "<b>".$val['product_type']."</b><br/>";
$products = explode(',',$val['pros']);
foreach($products as $product){
echo $product."</br>";
}
}
0

Другие решения

Получить результат и пройтись по нему, чтобы получить желаемый результат

$sql = "SELECT Product_type FROM product INNER JOIN product Product_type.typeid = product.pid";

$result = $conn->query($sql);

while ($row = $result->fetch_assoc()) {

$newarray[$row['product_type']][] = $row['product'];

}print_r($newarray);
2

Попробуйте использовать это

SELECT Product_type FROM product INNER JOIN product Product_type.typeid = product.pid GROUP BY Product_type;

Дайте мне знать, если это работает или нет.

1

Теперь мой вопрос заключается в том, как получить список продуктов на основе типа продукта.
Есть ли способ получить такой результат с помощью SQL-запроса?
Или как я могу сохранить результат в многомерном массиве на основе product_type. Может кто-нибудь помочь.

$mysqli = new mysqli("localhost", "my_user", "my_password", "mydb");
$query = "put your query string here";

$output = array();

// From your sql_query result list
if ($result = $mysqli->query($query))
{

/* fetch object array */
while ($row = $result->fetch_assoc())
{
if(isset( $output[ $row['product_type'] ] ))
{
$output[ $row['product_type'] ][] = $row['product'];
continue;
}
$output[ $row['product_type'] ] = array( $row['product']  );
}
print_r( $output ); // Here is your multi-dimational array
}
1

вы получаете результаты этого запроса в $row а потом,

$product_type1 = array();
$product_type2 = array();
while ($row) {
if($row['Product_type'] == '1') {
array_push($product_type1, $row['Product']);
}
else if($row['Product_type'] == '2') {
array_push($product_type2, $row['Product']);
}
}

и теперь используйте эти массивы для отображения значений в переднем конце.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector