PHP和MySQL Loop有帮助吗?

时间:2009-11-06 19:20:15

标签: php mysql

假设我有一个用户在数据库中输入了12个链接,但是当它们显示时,我想将链接分成3个组并重复三个组,直到显示所有12个扭结为止。

<div>
    <p><a href="">Link 1</a></p>
    <p><a href="">Link 2</a></p>
    <p><a href="">Link 3</a></p>
</div>

以下是我正在使用的代码的一部分。我的代码应该如何?

while ($row = mysqli_fetch_assoc($dbc)) {
        if (!empty($row['category']) && !empty($row['url'])) {
                echo '<div>';
                echo '<p><a href="' . $row['url'] . '" title="' . $row['category'] . ' Category Link">' . $row['category'] . '</a></p>';
                echo '</div>';
    }

}

3 个答案:

答案 0 :(得分:1)

这样的东西会让你获得每个div三个链接。我们在最后添加了额外的条件回声,用于没有3个链接的多个

的情况
$ctr = 0;
while ($row = mysqli_fetch_assoc($dbc)) {
    if (!empty($row['category']) && !empty($row['url'])) {
        if ($ctr%3 == 0) {
            echo '<div>';
        }
        $ctr ++;
        echo '<p><a href="' . $row['url'] . '" title="' . $row['category'] . ' Category Link">' . $row['category'] . '</a></p?';
        if ($ctr%3 == 0) { 
            echo '</div>';
        }
    }

}
if ($ctr%3 != 0) { 
  echo '</div>';
}

答案 1 :(得分:0)

如果你想在每次达到3时避免递增/重置i,你可以使用模数运算符:

http://php.net/manual/en/language.operators.arithmetic.php

类似的东西:

if( $i%3 == 0 ){
  // divisible by 3...
}

答案 2 :(得分:0)

更简单的方法更像是:

while(true) {
    $c = 0;
    echo "<div>";
    while ($row = mysqli_fetch_assoc($dbc) && $c++ < 3) {
        if (!empty($row['category']) && !empty($row['url'])) {
            echo '<p><a href="' . $row['url'] . '" title="' . $row['category'] . ' Category Link">' . $row['category'] . '</a></p>';
        }
    }
    echo "</div>";
    if(empty($row))
        break;
}