sql — отображение столбцов и строк в виде сетки. MYSQL, переполнение стека

Я пытался найти способ сделать это какое-то время, и я не могу решить это вообще.

product_column   product_row    product_name
__________________________________________________
1                1              product_1
1                2              product_2
1                3              product_3
2                1              product_4
2                2              product_5
2                3              product_6
3                1              product_7
3                2              product_8
3                3              product_9
4                1              product_10
4                2              product_11
4                3              product_12

Это фрагмент таблицы, который я пытаюсь установить как отображение продуктов в виде сетки, где product_columns являются родительскими элементами div, а product_rows в этих столбцах являются дочерними элементами div, как показано ниже;

<div class = "parent">
<div class = "child">
product_1
</div>
<div class = "child">
product_2
</div>
<div class = "child">
product_3
</div>
</div>
<div class = "parent">
<div class = "child">
product_4
</div>
<div class = "child">
product_5
</div>
<div class = "child">
product_6
</div>
</div>

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

Заранее благодарю за любую помощь, которую я получаю.

0

Решение

Вы можете поместить все продукты, которые принадлежат столбцу, в массив с одинаковым индексом, примерно так:

$sql = "SELECT product_column, product_row, product_name FROM table";
$query = mysqli_query($con,$sql);
$products = array();
while($row = mysqli_fetch_array($query,MYSQLI_ASSOC)){
$products[$row['product_column']][] = $row;
}

И для итерации по этому массиву вы можете сделать что-то вроде этого:

foreach ($products as $product_column => $list_products) {
echo "<div class='parent'>";
foreach($list_products as $product){
echo "<div class='child'>".$product['product_name']."</div>";
}
echo "</div>";
}
1

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

Других решений пока нет …

По вопросам рекламы [email protected]