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

标签 php mysql fetch backend grid-system

我正在制作一个后端系统,索引页面显示的产品应该遵循网格系统。例如,我有来自 MySql 数据库的 8 个产品。我想将它们分成 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 ?>的方式所以更容易/更清晰地阅读。

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

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

关于php - 如何在MySQL数据库中获取4行后回显特定内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47065725/

相关文章:

javascript - PHP AJAX 发布/获取

php - 如何查看以下系统中的反向关系

mysql - mysql中递归一对多的多对多关系是否需要至少4个表?

javascript - 获取响应以空对象 Promise 响应

javascript - 从本地 json 文件创建动态路由 nextjs 13

javascript - 覆盖 JS 中的获取方法并转发 Promises

php - 如何访问此 Javascript 数组(JSON 对象?)?

php - 允许空格的正则表达式(对于电话号码正则表达式)

php - Post 函数无法按预期与数据库一起运行

PHP + MySQL : Time as a string into numerics