сложный вывод в smarty

drizzle

Новичок
сложный вывод в smarty

У меня есть таблица 1 с названиями объектов и таблица 2 в которой хранятся картинки этих объектов.
В запросе объединяю их в одну.
Никак не могу сообразить как мне получить вывод следующего вида:
Объект1:
Картинка1, картинка2, Картинка3 ...

Объект2:
Картинка 1, картинка 2, Картинка ...

Объект ...:
Картинка1, картинка2, Картинка ...

Пробую так:
{section name=obj loop=$objects}

{if $id != $objects[obj].id}
{$objects[obj].Name}<br>
{assign var=id value=$objects[obj].id}
{/if}
{$pictures[obj].File}

но выводит казнашо.
Подскажите, пожалуйста, как побороть сие?
 

Panchous

Павел
ну тут же явно 2 цикла должно быть:
цикл по картинкам вложен в цикл по объектам
 

drizzle

Новичок
согласен, но я раньше без смарти просто в пхп выводил данные именно в таком виде.
Я пробовал делать 2 запроса к первой и второй таблице, а потом объединял их вложеными {selection} :
{section name=obj loop=$objects}
<TR>
<TD COLSPAN=3 WIDTH=191 valign=bottom>
<table CELLPADDING=0 CELLSPACING=0 WIDTH=190 BORDER=0>
<tr><td align=right>{$objects[obj].Name}</td></tr>
<tr><td align=right>{$objects[obj].Place}</td></tr>
<tr><td align=right>{$objects[obj].Year}</td></tr>
<tr><td align=right>{$objects[obj].Author}</td></tr>
<tr><td align=right HEIGHT=30></td></tr>
</table>
</TD>
<TD WIDTH=609 valign=top>
<IMG SRC="../images/about_04.png" WIDTH=600 HEIGHT=5><br>
<table CELLPADDING=10 CELLSPACING=0 BORDER=0>
<tr>
{section name=pic loop=$pictures[obj]}
{if $objects[obj].id == $pictures[pic].obj_id}
<td align=left><a href="../pictures/large.php?img={$pictures[pic].File}" target="_blank"><IMG SRC="../pictures/preview.php?img={$pictures[pic].File}" ALT="{$pictures[pic].Name}" border="0"></a></td>
{/if}
{/section}
</tr>
</table><br>
<IMG SRC="../images/about_04.png" WIDTH=600 HEIGHT=5>
<!-- End Content -->
</TD>
</TR>
{/section}

но вывод был весьма странный - выводились не все картинки. т.е. для первого объекта выводилось 3 картинки из четырех, для второго объекта 0 картинок из 5-ти, для третьего объекта две их трех и т.д. Что не так?
 

drizzle

Новичок
пример 7-22. "вложенные секции" брал из http://smarty.php.net/manual/ru/language.function.section.php

массив $objects содержит все объекты
массив $pictures содержит все картинки
при этом в objects.id=pictures.obj_id
 

Panchous

Павел
а теперь покажи код шаблона (без ХТМЛ!)
что хотел? и что получилось?
 

drizzle

Новичок
код шаблона приведен сверху. если опустить хтмл, то останется:
{section name=obj loop=$objects}

{$objects[obj].Name}
{$objects[obj].Place}
{$objects[obj].Year}
{$objects[obj].Author}

{section name=pic loop=$pictures[obj]}
{if $objects[obj].id == $pictures[pic].obj_id} <IMG SRC="{$pictures[pic].File}"> {/if}
{/section}

{/section}

Получилось:

Объект1:
Картинка1, картинка2, Картинка3 ...

Объект2:
пропуск 1, пропуск 2, пропуск ...

Объект3:
пропуск 1, пропуск 2, пропуск ...

Объект ...:
Картинка1, картинка2, Картинка ...
 

drizzle

Новичок
когда я написал пропуск 1, пропуск 2, пропуск ...
я имел ввиду, что в ХТМЛ, который отдал сервер пусто, даже нет <img>
 
Сверху