PHP while 循环从每 2 行分离成一个 div



我有一个来自数据库的while循环,但我想将每2行包装成一个div。

目前我有这个,但只包装第一行。

<?php
$get = $connect->query("SELECT * FROM sabiaque ORDER by ordem");
$num = 0;
while ($f = $get->fetch_array(MYSQLI_ASSOC)) {
if ($num % 2) {
echo '<div class="divisor-slide">';
}
echo' 
<a href="'.$f['link'].'"><div class="item-a">   
<div class="box1-item-a">
<div class="i-wrap"><h1 class="i-white">'.utf8_decode($f['titulo']).'</h1><p>'.utf8_decode($f['subtitulo']).'</p></div>
</div>
<div class="box1-item-b">
<img src="../'.$f['ficheiro'].'" style="max-width: 100%; height: 100%;" />
</div>
</div></a>
';
if($num % 2) {
echo '</div>';
}
$num++;
}
?>

更改:

if($num%2) {
echo '<div class="divisor-slide">';
}

通过这个:

if( ($num % 2) == 0) {
echo '<div class="divisor-slide">';
}

而这个:

if($num %2) {
echo '</div>';
}

自:

if( ($num % 2) == 0) {
echo '</div>';
}

我经常发现使用这些特殊$num%2的东西时我陷入了混乱(我会因为聪明地使用它们而感到兴奋,然后当我重新访问代码时忘记它们的作用(。为什么不像这样简化它(尽管它使用了更多的代码(:

$num = 1;
while ($f = $get->fetch_array(MYSQLI_ASSOC)) {
if ( $num == 2 ) echo '<div class="divisor-slide">';
// rest of code
if ( $num == 2 ) echo '</div>';
$num++; if ( $num == 3 ) $num = 1;
}

最新更新