连续显示3个图像的问题

时间:2010-02-03 19:21:28

标签: php

嘿伙计们,我知道这是一个愚蠢的问题,但我在解决它时被绞死了

我写了一段php代码来显示来自mysql的图片

    echo "<table><tr> ";

    while($cat = $db->sql_fetchrow($catinfo)) {
        echo '
        <td>
        <ul id="three-col" class="press">   
        <li>
    <div class="post-content">
    <a class="zoom1" href="'.$galsettings[setImgDir].'/'.$cat[galCatLocation].'/'.$cat[galCatImg].'">
    <img src="'.$galsettings[setImgDir].'/'.$cat[galCatLocation].'/'.$cat[galCatImg].'" alt="artistry (via powerbooktrance)" />
    </a>
    </div>';

    for ($i=0; $i>2; $i++) {
    echo "</tr><tr>";
    }
    }

echo "</li></ul></td></tr></table>";

但是使用此代码时,一切都会出错,并且在行中的每3个图像之后它都没有破坏

我甚至用过

if ($i>2) {
    echo "</td></tr><tr>";
}

但是你知道它只会在图像编号3之后打破tr而不是每一行

我真的很抱歉我的愚蠢问题

3 个答案:

答案 0 :(得分:2)

首先,

  for ($i=0; $i>2; $i++) {

应该是

for ($i=0; $i < 2; $i++) {

可能还有其他逻辑问题(看)......

事实上,这种逻辑似乎完全是有缺陷的。似乎没有任何东西可以检测到第三张图像......

==&GT;我建议你试试tambler的回答片段。没有必要尝试并修复这个......但如果你必须:

  • for ($i=0; $i>2; $i++) {循环是不必要的。即使固定为$ i&lt; 2(或3 ...)这没有任何用处。
  • 每个新图片输出<td>,需要使用</td>
  • 关闭
  • 你需要在你的代码段中提示一个计数器($ i)无效
  • 计数器将随每个图像系统地递增
  • 在循环结束时添加测试:
         如果计数器> = 3(或2,如果你使它为0)          重置计数器;          发出“”
  • <ul><li>及其各自的结束标记也是错误的。

答案 1 :(得分:2)

试试这个:

echo "<table><tr> ";

$counter = 0;

while($cat = $db->sql_fetchrow($catinfo)) {

    $counter++;

    echo '
    <td>
    <ul id="three-col" class="press">   
    <li>
    <div class="post-content">
    <a class="zoom1" href="'.$galsettings[setImgDir].'/'.$cat[galCatLocation].'/'.$cat[galCatImg].'">
    <img src="'.$galsettings[setImgDir].'/'.$cat[galCatLocation].'/'.$cat[galCatImg].'" alt="artistry (via powerbooktrance)" />
    </a>
    </div>
    ';

    if ( $counter == 3 ) {

        echo '</tr><tr>';

        $counter = 0;
    }

}

echo "</li></ul></td></tr></table>";

答案 2 :(得分:0)

你在哪里</td>代码?

所有的TD都必须在TR内。您必须在TR之前关闭UL和TD。