我正在网格系统中处理一个循环,它一次显示2行3幅内联图像(分页)。在每3个返回的<div id="clear"></div>行之后,我一直试图调试我的代码以显示MySQL,但没有成功。
PHP/
<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类。为了在技术上每3次返回<div id="clear"></div>行之后显示MySQL,这应该是可行的:
生成的列表项
<?php
if (($n % 6) == 0){?>
<li class="clearfix">
<?php }if (($i % 4) == 0){?>
<div id="clear"></div>
<?php }?> 但是没有。在6个返回的网格行中,等于18个总图像,它在MySQL第1-3行和13-15行之后生成MySQL,但是对于MySQL行6-9,<div id="clear"></div>显示在MySQL第6行之后,它应该在9之后显示。
我希望这是合理的,任何建议都将不胜感激。
发布于 2012-07-24 20:26:19
看看这样的事对你有用吗。
<?php
$i = 1;
$result = mysql_query("SELECT * FROM images");
$max_count = mysql_num_rows($result);
if($max_count > 0)
{
?>
<ul>
<?php
while($row = mysql_fetch_array($result)) {
if($i % 3 == 1) {
$class = 'alpha';
} elseif($i % 3 == 0) {
$class = 'omega';
} else {
$class = ''; //Do NOT carry through the loops
}
if($i % 6 == 1 || $i == 1) {
?>
<li>
<?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 % 3 == 0) {
?>
<div class='clear'> </div>
<?php
}
if($i % 6 == 0 || $i == $max_count) {
?>
</li>
<?php
}
$i++; //Move Row Count Along
}
?>
</ul>
<?php
}
?>发布于 2012-07-24 19:55:36
好吧,所以我认为这和你的if (($i % 4) == 0)声明有关。您应该使用3的模数,而不是4的模数。<div id="clear"></div> --这将在第一行给出一个。
为了防止这种情况,你可以说:
if ((($i % 3) == 0) && $i != 0)
试一试,让我知道它是否适合你!
https://stackoverflow.com/questions/11638175
复制相似问题