Имеется следующий нетривиальный PHP-код:
$req = DB::run("SELECT * FROM `license` WHERE `id_user`='" . $this->user['id'] . "' ORDER BY `id` DESC LIMIT " . $this->page . ", " . $this->message);
while ($row = $req->fetch(PDO::FETCH_ASSOC)) {
$arrayrow[] = $row;
$reqs = DB::run("SELECT * FROM `cms_php` WHERE `cms`='" . $row['cms'] . "' ORDER BY `id` ASC");
while ($rows = $reqs->fetch(PDO::FETCH_ASSOC)) {
$arrayrows[] = $rows;
}
}
В шаблон передаю так:
SmartySingleton::instance()->assign(array(
'arrayrow' => $arrayrow,
'arrayrows' => $arrayrows
));
В шаблоне вывожу вот так:
{foreach $arrayrow as $row}
<tr>
<td>{$row.namecms|esc}</td>
<td>{$row.code}</td>
<td>{if $row.activation == 1}активирована{else}не активирована{/if}</td>
<td>
{if $row.price == 0}
{foreach $arrayrows as $rows}
{if $row.cms == $rows.cms}
<span><a href="{$home}/load/{$row.cms}/{$rows.id}">{$rows.name|esc}</a></span>
{/if}
{/foreach}
{else}
{foreach $arrayrows as $rows}
{if $row.cms == $rows.cms}
<span><a href="{$home}/profile/load/{$row.id}/{$rows.id}">{$rows.name|esc}</a></span>
{/if}
{/foreach}
{/if}
</td>
</tr>
{/foreach}
Что не правильно: т.е. значения повторяются?
Как правильно вывести в шаблоне?
Самый простой способ сделать вот так:
{foreach array_slice($arrayrows, 0, ЧИСЛО) as $rows}
<span><a href="{$home}/load/{$row.cms}/{$rows.id}">{$rows.name|esc}</a></span>
{/foreach}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть скрипт что пытается определить кодировку и сменить на WINDOWS-1251Вот основной кусок: