在主div循环中添加3个div

时间:2015-01-08 07:03:10

标签: php html css

我想在主<div class="cols">循环中添加3个<div class="rows">块 我从DB获取数据并格式化为3 <div class="cols">个cals和<div class="rows">行。

我需要跟随:

<div class="rows">
    <div class="cols"></div>
    <div class="cols"></div>
    <div class="cols"></div>
</div>
<div class="rows">
    <div class="cols"></div>
    <div class="cols"></div>
    <div class="cols"></div>
</div>
<div class="row">
    <div class="cols"></div>
    <div class="cols"></div>
    <!-- if total record is 8 then display only 2 divs -->
</div>

那么我在循环中编写的内容是为了使它动态化?

5 个答案:

答案 0 :(得分:0)

您可以使用嵌套

<?php foreach($rows as $row){?>
<div class = "rows">
    <?php foreach($row['cols'] as $col){?>
    <div class = "cols"></div>
    <? }?>
</div>
<?php }?>

答案 1 :(得分:0)

你有来自数据库的数据,你可能使用while循环,你只需要计算并记住当前的迭代。

这是可行的代码,我没有测试过。至少关键是如何做到这一点。

PS。此代码要求您不要在一个数组中使用嵌套数组和数据库中的X条记录。

$i = 0;
while ($row = $mysqli->fetch_assoc($result)) {
    $i++;

    echo $i % 3 == 1 ? '<div class="rows">' : ''; // open .rows div during the first, fourth, etc. loop

    echo '<div class="cols">' . $row['data'] . '</div>'; // write data

    echo $i % 3 == 0 ? '</div>' : ''; // close .rows div in the third, sixth, etc. loop
}

if ($i % 3 != 0) {
    echo '</div>'; // if the last iteration didn't close the .rows div, close that now
}

如果您将拥有嵌套数组,解决方案将更加清晰。

foreach ($data as $row) {
    echo '<div class="rows">';

    foreach ($row as $item) {
        echo '<div class="cols">' . $item .' </div>';
    }

    echo '</div>';
}

答案 2 :(得分:0)

你试试这个:

$data = array('A', 'B', 'C', 'D', 'E'); //you get from database

$cnt = 1;
foreach ($data as $dt) {
    if ($cnt%3 == 1) {
        echo "<div class='rows'>";
    }
    echo "<div class='cols'>";
    echo $dt;
    echo "</div>"; //close "class=cols" div
    if ($cnt % 3 == 0) {
        echo "</div>"; //close "class=rows" div
    }
    $cnt++;
}
if ($cnt%3 != 1)
{
    echo "</div>"; //close "class=rows" div
}

答案 3 :(得分:0)

for ($i=0;$i<10;$i++) {

    if ($i % 3 == 0) {
        ?>
        <div class = "rows">
            <?php
        }
        ?>
        <div class = "cols"></div>
        <div class = "cols"></div>
        <div class = "cols"></div>
        <?php
        if ($i % 3 == 0) {
            ?>
        </div>
        <?php
    }
    ?>
    <?php
}
?>

答案 4 :(得分:0)

<?php
$sql = mysql_query('your query');
$count = mysql_num_rows($sql);

$i = 3;
while($row = mysql_fetch_array($sql)){
    if($i % 3 == 0){
        echo '<div class="rows">';
    }
    echo '<div class="cols">Your data</div>';
    $i++;
}
if($i % 3 == 0){
    echo '</div>';
}
?>