Я пытался найти способ сделать это какое-то время, и я не могу решить это вообще.
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>
Как я уже говорил, я уже давно заткнул его и наткнулся на камень преткновения. Количество столбцов также не является заданным числом.
Заранее благодарю за любую помощь, которую я получаю.
Вы можете поместить все продукты, которые принадлежат столбцу, в массив с одинаковым индексом, примерно так:
$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>";
}
Других решений пока нет …