如何在 MySQL 数据库中获取 4 行后回显特定内容

How to echo a specific content after fetching 4 rows in MySQL database

我正在做一个后台系统,索引页显示的产品应该遵循网格系统。例如,我有 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 Table.

我的解决方案是否正确?如果是,请帮助我,否则,请告诉我你的解决方案。

您可以试试下面的代码。

我正在做的不是使用 while,而是将其切换为 foreach 来遍历数组。

我正在使用 count 来指示何时应添加 <div class="row">。 在第一项和每第四项上,它应该添加一个新行。

我还更新了调用 <?php ?> 的方式,因此 easier/cleaner 可以阅读。

如果您有任何问题,请告诉我:

<?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 } ?>