列表的问题。嵌套循环?

时间:2011-07-06 23:41:02

标签: php loops for-loop foreach

我在这里打开一个新行,每隔6个我要绘制行数据的数据。 当类似6的代码打印数据36次时。 这个功能正在检查有多少游戏。如果我在下面提到,但现在有36个印刷单元。每次打印6次。

for($i = 0; $i < $db->oyunSayisi(); $i++)
{ 
    if ($i % 6 == 0)
    {
        echo "<tr>";
    }

    ?>
    <br/>
    <?php
    foreach($db->oyunCek() as $oyun)
    {
        ?>
        <td width="224" height="115"><a href="<?=$db->siteAdres()?>/oyun.php?id=<?=$oyun['o_id']?>" title="<?=$oyun['o_baslik']?> oyna"><img height="115;110" src="<?=$db->siteAdres()?>/resimler/<?=$oyun['o_resim']?>" title="<?=$oyun['o_baslik']?> oyna" alt="<?=$oyun['o_baslik']?> oyna" /></a></td>
        <?php
    }
    if ($i % 6 == 0)
    {
        echo "</tr>";
    }
} 

1 个答案:

答案 0 :(得分:0)

我想我看到可能导致问题的原因。

对于从oyunSayisi()返回的每六个项目,您需要创建一个显示oyunCek()数据的表格行。问题是第一个模数只输出<tr>,然后每个行运行foreach循环。最后,第二个模数输出</tr>。我想你想将所有内容组合成一个模数,如下所示:

for($i = 0; $i < $db->oyunSayisi(); $i++)
{ 
    if ($i % 6 == 0)
    {
        echo "<tr><br/>\n";
        foreach($db->oyunCek() as $oyun)
        {
            ?>
            <td width="224" height="115"><a href="<?=$db->siteAdres()?>/oyun.php?id=<?=$oyun['o_id']?>" title="<?=$oyun['o_baslik']?> oyna"><img height="115;110" src="<?=$db->siteAdres()?>/resimler/<?=$oyun['o_resim']?>" title="<?=$oyun['o_baslik']?> oyna" alt="<?=$oyun['o_baslik']?> oyna" /></a></td>
            <?php
        }
        echo "</tr>\n";
    }
} 

修改

进一步思考后,你想要只回显第六行数据是没有意义的...所以我想你可能想要每隔六行创建一个新的表行,而不是跳过任何内部foreach循环。以下是修改后的代码:

echo "<tr>\n";
for($i = 0; $i < $db->oyunSayisi(); $i++)
{
    foreach($db->oyunCek() as $oyun)
    {
        ?>
        <td width="224" height="115"><a href="<?=$db->siteAdres()?>/oyun.php?id=<?=$oyun['o_id']?>" title="<?=$oyun['o_baslik']?> oyna"><img height="115;110" src="<?=$db->siteAdres()?>/resimler/<?=$oyun['o_resim']?>" title="<?=$oyun['o_baslik']?> oyna" alt="<?=$oyun['o_baslik']?> oyna" /></a></td>
        <?php
    }
    if (($i + 1) % 6 == 0)
    {
        echo "</tr>\n<tr>\n";
    }
}