我在表格中遇到了问题
问题是重复我希望当它到达4行时将表转移到新行
代码PHP:
// for :
$tr = 1;
while($row = mysql_fetch_array($post_tv)){
$show[] = $row;
if ($tr == 4){
$tr == 1;
}
$tr++;
$marsosmarty->assign("show",$show);
$marsosmarty->assign("tr",$tr);
}
Code Html smarty:
<td width="91"><table width="100" height="100" border="0" cellpadding="1" cellspacing="1" bgcolor="#666666">
<tbody><tr>
{section name=table loop=$show}
{if $tr eq 3} </tr><tr> {/if}
<td bgcolor="#FFFFFF">
<a href="./channel.php?id={$show[table].id}" target="az">
<img src="{$show[table].a_IMG}" alt="{$show[table].a_DESC}" width="100" height="100" border="0" class="link-img" title="{$show[table].a_TITLE}">
</a>
</td>
{/section}
</tr>
答案 0 :(得分:2)
首先,你在每次迭代中重新分配tr,并在循环时将模板提取到外面,所以这没有任何意义。您应该在获取所有结果后分配变量:
while($row = mysql_fetch_array($post_tv)){
$show[] = $row;
}
$marsosmarty->assign("show", $show);
要移动到表格中的下一行,您可以使用部分名称和模运算符,如下所示:
<td width="91"><table width="100" height="100" border="0" cellpadding="1" cellspacing="1" bgcolor="#666666">
<tbody><tr>
{section name=table loop=$show}
<td bgcolor="#FFFFFF">
<a href="./channel.php?id={$show[table].id}" target="az">
<img src="{$show[table].a_IMG}" alt="{$show[table].a_DESC}" width="100" height="100" border="0" class="link-img" title="{$show[table].a_TITLE}">
</a>
</td>
{if !$smart.section.table.last && $smart.section.table.iteration % 4 eq 0}
</tr><tr>
{/if}
{/section}
</tr>
这样,在显示4个单元格后,会创建新的表格行(仅当有更多单元格时,才会确保此!$smart.section.table.last
条件)