Я делаю 2 запроса в моем файле PHP. Второе зависит от первого, и я хотел бы отобразить результаты в моем шаблоне Smarty.
Однако, это не показывает хорошие результаты. Вот код:
Сначала запрос:
$sql = "SELECT * FROM albums order by id ASC";
$rs = $conn->execute($sql);
$galeries = $rs->getrows();
foreach ( $galeries as $galerie ) {
$sqlgal = "SELECT id, filename, id_album FROM pictures where id_album = ".$galerie['id']." order by id ASC limit 0,1 ";
echo $sqlgal;
$rsgal = $conn->execute($sqlgal);
$picture1 = $rsgal->getrows();
}
и я назначил результаты переменным:
$oSmarty->assign('galeries', $galeries);
$oSmarty->assign('pictures', $picture1);
Теперь в моем шаблоне:
{section name=i loop=$galeries}
<div class="item">
<div class="well">
<a href="/galerie/{$galeries[i].id}/{$galeries[i].title|clean}.html" class="thumbnail"><img src="/photos/{$galeries[i].filename}/{$pictures[i].filename}" class="img-responsivetotal"></a>
</div>
</div>
{/section}
У меня есть информация о галерее, но имя файла картинки не появляется. В чем дело? Я не мог найти ничего о подзапросах в ADODB.
Логика в вашем php-коде относительно картинок кажется неправильной: вы перебираете все галереи:
foreach ( $galeries as $galerie )
и в каждом из этих циклов вы назначаете данные для $ picture1, уничтожая любые данные из предыдущего цикла:
$picture1 = $rsgal->getrows();
так что, в конце концов, $ pictures1 имеет изображение только из последней галереи. Я полагаю, вы забыли автоматически увеличить массив:
$picture1[] = $rsgal->getrows();
Других решений пока нет …