2012-01-08 2 views
0

У меня есть проблема в в таблицеПовторные в таблице Smarty + Php

Проблема в том, чтобы повторять я хочу, когда он достигает 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); 
} 

Код Html умник:

<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

В чем проблема? Что происходит с вашим текущим кодом? – nicky77

+0

Проблема в том, что результаты показаны в одной строке. Я хочу, чтобы она показывала (4 строки ..) в таблице –

+0

Можете ли вы попытаться просто вывести значение $ tr на протяжении всего цикла, просто чтобы убедиться, что он действительно соответствует вашему $ tr eq 3 условие – nicky77

ответ

2

Прежде всего вы переназначение тр в каждом Итеры и выбор шаблона вне цикла while, поэтому это не имеет смысла. Вы должны назначить переменную, после получения всех результатов:

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)