Имеется такой вот цикл:
$req = DB::run("SELECT `games`.*, " . Games::count() . " FROM `games` ORDER BY `id` DESC LIMIT " . $this->page . ", " . $this->message);
while ($row = $req->fetch(PDO::FETCH_ASSOC)) {
$arrayrow[] = $row;
$arrayrowgenre[] = DB::run("SELECT * FROM `genre` WHERE `id` IN (" . $row['genre'] . ") ORDER BY `id` ASC")->fetchAll();
}
Необходимо в шаблон smarty передать значения от $arrayrowgenre
Такой вариант не подходит:
{foreach $arrayrow as $row key=k}
{foreach $arrayrowgenre as $genre}
{$genre.$k.name|esc}<br/>
{/foreach}
{/foreach}
он выводит совсем не те значения.
Проблема в вашем коде (если не брать расчет какой-то ад при выборке данных из БД) состоит в том, что вместо построения и передачи одной связной модели данных вы передаете туда несколько массивов с какими то индексами. Соберите данные изначально в нормальный вид, в том числе, используя нормальные имена переменных, тогда с ними и работать будет проще.
$model = [];
while ($game = $req->fetch(PDO::FETCH_ASSOC)) {
$genres = DB::run("SELECT *
FROM `genre`
WHERE `id` IN (" . $game['genre'] . ")
ORDER BY `id` ASC")
->fetchAll();
$game['genres'] = $genres;
$model[] = $game;
}
// $smarty->assign('model', $model); // или иначе передать данные в шаблон
в шаблоне вывод таблицы с играми и жанрами будет выглядеть следующим образом:
{foreach $model as $idx => $game}
<tr class="game" id="{$game.id}">
<td>{$game.name}</td>
<td>
<ul>
{foreach $game.genres as $genre}
<li>{$genre.name}</li>
{/foreach}
</ul>
</td>
</tr>
{/foreach}
зы: и почитайте где-нибудь про работу с БД в части выборки данных, а также про сами БД в части их реализации. Не ясно зачем вы фактически храните связи многие-ко-многим сериализованные в поле таблицы.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В документации к API сказано, что в тело запроса нужно вставить JSON-строку с параметрами и указан пример:
В опциях определено что linecap: round, но концы все равно не скругленные