首页 > 解决方案 > 通过它们在php中的索引选择性地通过多维关联数组进行交互

问题描述

我正在使用 php 开发一个网站,我正在从 sql server 获取数据。我需要做的是有 2 行,每行将包含 3 列数据。我存储数据的关联数组有6个子数组。我需要创建一个循环,在 3 个条目之后,创建一个新行,并在下一行打印下三个的数据。

我尝试使用 while 循环,但我不知道如何通过索引分隔数组,因为 while($index = mysqli_fetch_assoc(r)) 将打印所有数据,但我希望 3 个在一行中,3 个在下一行。谢谢!

        <?php
        $q = "SELECT * FROM main_intro";
        $r = mysqli_query($link, $q) or die(mysqli_error($link));
        $num_rows = mysqli_num_rows($r);
        $count = 0;
        $intro = mysqli_fetch_assoc($r);
        $keys = array_keys($intro) ?>

        <div class="row custom_pad">
            <?php
            for ($i = 0; $i < 3; $i++) {
                ?>
                <div class="col-md-4">
                    <h2><?php echo $intro['image']; ?><?php echo $intro['heading']; ?></h2>
                    <p><?php echo $intro['data']; ?></p>
                </div>
            <?php} ?>
            <!-- -->
        </div>

我需要的是,在第一行,我需要前 3 个数组数据,然后在下一行,我需要另外 3 个。

标签: phphtmlmysql

解决方案


看起来您想用适当的数据填充每行的三列。现在您只从结果集中获取一行,您必须使用while循环遍历结果集并使用 for循环适当地填充每一列。

<?php
$q = "SELECT * FROM main_intro";
$r = mysqli_query($link, $q) or die(mysqli_error($link));
while($intro = mysqli_fetch_assoc($r)){
    ?>
    <div class="row custom_pad">
        <?php
        for ($i = 0; $i < 3; $i++) {
            ?>
            <div class="col-md-4">
                <?php
                    switch($i){
                        case 0:
                            echo $intro['image'];
                            break;
                        case 1:
                            echo '<h2>' . $intro['heading'] . '</h2>';
                            break;
                        case 2:
                            echo '<p>' . $intro['data'] . '</p>';
                            break;
                    }
                ?>
            </div>
            <?php 
        } 
    ?>
    </div>
    <?php
}

推荐阅读