2011-10-03 59 views
0

我试图在不超过6个项目的行中的表中显示图像搜索结果。如何在达到限制后让表格自动创建新行?现在,我有一个非常简单的表格,将放在所有图像在一列:限制动态填充表中的行项目数 - PHP,MySQL

while($info = mysql_fetch_array($data)) 
{ 
echo "<table id=table1>"; 

echo "<tr><td>"; 
echo "<img src=http://www.website.com/pictures/".$info['photo'] ."> <br>"; 
echo "<a href=http://www.website.com/pictures/".$info['photo'] . " >Full Quality </a><br> "; 
echo "</td></tr>"; 
} 

感谢

+1

什么是循环内的'table'标记?甚至更糟,其结束标记丢失。 – fvu

+0

你知道,通过img-tag的属性调整大小并不是真的调整大小,是吗?我只是猜测你是或将会这样做,因为图像和“完整质量”链接指向相同的图像。 – CodeCaster

回答

1

你可以做这样的事情与模运算和检查,看看是否你的计数器是整除通过6.你将不得不做一些逻辑来看看在该行之后是否真的需要这个结尾。

$counter = 1; 

echo "<table id=table1><tr>"; 

while($info = mysql_fetch_array($data)) 
{ 
    if ($counter % 6==0) { 
     echo "</tr>"; 
     echo "<tr>" 
    } 

echo "<td>"; 
echo "<img src=http://www.website.com/pictures/".$info['photo'] ."> <br>"; 
echo "<a href=http://www.website.com/pictures/".$info['photo'] . " >Full Quality </a><br> "; 
echo "</td>"; 


$counter++; 
} 
echo "</tr>" 
0

你可以做这样的事情:

echo "<table id=table1>"; 


while($info = mysql_fetch_array($data)) 
{ 
    echo "<tr>"; 
    for($i=0; $i < 6; $i++){ 
     echo "<td>"; 
     echo "<img src=http://www.website.com/pictures/".$info['photo'] ."> <br>"; 
     echo "<a href=http://www.website.com/pictures/".$info['photo'] . " >Full Quality   </a><br> "; 
     echo "</td>"; 
     if(!$info = mysql_fetch_array($data)){ 
      break; 
     } 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 
这里

的基本想法是,你只需要你的循环内的循环跟踪,当你已经达到6项,并开始一个新的行相应。

也作为评论者指出,一定要在适当的地方打开你的桌子,也一定要关闭它。我试图在下面的代码中给出一个例子。

1

我试过这种方法,以便有3个项目/行,但我没有后第二行(我有8项)。

while($res = mysql_fetch_array($cat)) 
{ 
    echo "<tr height=\"40\">"; 
    for($i=0; $i < 3; $i++){ 
     echo "<td>"; 
     echo "<a href= 'http://www....org/".$res['tipologie']."'>"; echo $res['tipologie']; echo "</a>"; 
     echo "</td>"; 
     if(!$res = mysql_fetch_array($cat)){ 
      break; 
     } 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 
}