我正在研究网格系统中的一个循环,该循环一次显示 2 个网格行,每行 3 个内联图像(分页)。我一直在尝试调试我的代码以<div id="clear"></div>
在每 3 个返回的 MySQL 行后显示,但没有成功。
PHP/HTML
<ul class="clean" style="width:940px; height:465px;">
<?php
$result = mysql_query("SELECT * FROM images");
$i=0;
//Begin image loop
while($row = mysql_fetch_array($result)){
//Start counter
$i++;
$n = ($i + 5);
$class = "";
$clear = "";
//Generate classes
if (($i % 3) == 1){
$class = "alpha";
}
if (($i % 3) == 0){
$class = "omega";
}
//Generate list items
if (($n % 6) == 0){?>
<li class="clearfix">
<?php }if (($i % 4) == 0){?>
<div id="clear"></div>
<?php }?>
<div class="grid_4 <?php echo $class;?>">
<p><a href="<?php echo $row["src"];?>" alt="<?php echo $row["alt"];?>">
<img src="<?php echo $row["src"];?>" alt="<?php echo $row["alt"];?>" />
</a><br />
<small class="center"><?php echo $row["excerpt"];?></small></p>
</div>
<?php if (($i % 6) == 0){?>
</li>
<!-- //slide -->
<?php }} //End image loop?>
</ul>
我如何设置网格是,在从左到右的每个网格行中,都有一个alpha
分配给第一个元素的omega
类和一个分配给最后一个元素的类。为了在<div id="clear"></div>
技术上每 3 个返回 MySQL 行后显示,这应该有效:
生成的列表项
<?php
if (($n % 6) == 0){?>
<li class="clearfix">
<?php }if (($i % 4) == 0){?>
<div id="clear"></div>
<?php }?>
然而事实并非如此。在等于 18 个总图像的 6 个返回网格行内,它<div id="clear"></div>
在 MySQL 行 1-3 和 13-15 之后生成良好,但对于 MySQL 行 6-9,<div id="clear"></div>
显示在 MySQL 行 6 之后,它应该在 9 之后显示。
我希望这是有道理的,任何建议将不胜感激。