gpt4 book ai didi

php - PHP/MySQL 循环问题

转载 作者:行者123 更新时间:2023-11-29 08:49:33 26 4
gpt4 key购买 nike

我正在网格系统中开发一个循环,该系统一次显示 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类(class)分配到最后。为了显示<div id="clear"></div>从技术上讲,每 3 个返回 MySQL 行之后,这应该可以工作:

生成的列表项

<?php 
if (($n % 6) == 0){?>

<li class="clearfix">
<?php }if (($i % 4) == 0){?>
<div id="clear"></div>
<?php }?>

然而事实并非如此。在 6 个返回的网格行(等于 18 个图像总数)内,它生成 <div id="clear"></div>在 MySQL 行 1-3 和 13-15 之后没问题,但对于 MySQL 行 6-9,<div id="clear"></div>显示在 MySQL 第 6 行之后,而它应该显示在第 9 行之后。

我希望这是有道理的,任何建议将不胜感激。

最佳答案

看看这样的东西是否适合你。

<?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'>&nbsp;</div>
<?php
}

if($i % 6 == 0 || $i == $max_count) {
?>
</li>
<?php
}

$i++; //Move Row Count Along
}
?>
</ul>
<?php
}
?>

关于php - PHP/MySQL 循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11638175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com