Я делаю бэкэнд-систему, и отображаемый продукт со страницы индекса должен следовать системе сетки. Например, у меня есть 8 продуктов из базы данных MySql. Я хочу разделить их на 2 ряда по 4 продукта в каждом. Так что мой PHP-код будет выглядеть так:
<div class="row">
<?php
$result = mysqli_query($conn, "SELECT * FROM products");
while ($row = mysqli_fetch_array($result)) {
?>
<div class="col-dsk-4"><?php echo $row["name"]; ?></div>
<?php
}
?>
</div>
Как вы можете видеть в коде, я хочу после того, как повторил 4 раза (4 раза <div class="col-dsk-4">
), цикл while завершается, затем продолжается новый <div class="row">
пока он не перебирает все элементы таблицы MySql.
Мое решение правильно или нет? Если так, пожалуйста, помогите мне, в противном случае, пожалуйста, покажите мне свое решение.
Вы можете попробовать код ниже.
То, что я делаю, вместо того, чтобы использовать while
Я переключил это на foreach
пройти через массив.
я использую count
диктовать, когда <div class="row">
должны быть добавлены.
На первый и каждый 4-й элемент следует добавить новую строку.
Я также обновил способ, которым я звоню <?php ?>
так легче / чище читать.
Если у вас есть какие-либо вопросы, дайте мне знать:
<?php $result = mysqli_query($conn, "SELECT * FROM products"); ?>
<?php $rows = mysqli_fetch_array($result); ?>
<!-- Use count to decide when to put a new div with class 'row' -->
<?php $count = 1; ?>
<?php foreach ($rows as $key => $row) { ?>
<!-- Create a new div with class 'row' on the first item + everytime theres a 4th one -->
<?php if ($count == 1 || ($count % 4 == 0)) { ?>
<div class="row">
<?php } ?>
<div class="col-dsk-4">
<?php echo $row["name"]; ?>
</div>
<!-- Close div with class 'row' everytime theres a 4th one -->
<?php if ($count == 1 || ($count % 4 == 0)) { ?>
</div>
<?php } ?>
<!-- Increment the count -->
<?php $count++; ?>
<?php } ?>
Других решений пока нет …