Есть php код который нужно вывести в smarty, подскажите пожалуйста как это сделать, вот код:
<option id="marka-avto">Выберите марку авто</option>
<?php
//Выводим категории и ее ID
while ($row=mysql_fetch_assoc($result))
{
$marka = $row['marka'];
echo "<option value=\"$marka\">$marka</option>";
}
?>
</select>
Этот код нужно перенести в шаблнизатор.
{
$sqlmy->query('SELECT DISTINCT marka FROM filtr_db');
$result = mysql_query($sqlmy);
//Выводим категории и ее ID
$row=mysql_fetch_assoc($result)
{
$marka = $row['marka'];
echo "<option value=\"$marka\">$marka</option>";
}
}
если делать так то передается просто $marka а не значения из бд
Отделение "представления (хтмл)" от логики (пхп кода) это весьма хорошо, и шаблонизаторы здесь весьма упрощают нам жизнь. Однако не стоит тащить в шаблон все, что плохо лежит. Ваша задача в пхп коде подготовить данные, и передать их в шаблон. Таким образом в пхп коде должна быть написана вся логика по выборке данных из БД, а результат передан в шаблон.
То есть в пхп файле у вас остается?
$query = "select ... ";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)) {
$options[] = $row;
}
$smarty->assign('options', $options);
$smarty->assign('current', $current); // выбранный пункт
А в tpl-шаблоне вы только выводите уже сформированные данные:
<select id="sel">
<option id="" value="">Выберите марку авто</option>
{foreach $options as $o}
<option value="{$o.marka}" {if $o.marka == $current}selected{/if}>{$o.marka} </option>
{/foreach}
</select>
если вы будете пытаться в переносить работу с БД в шаблон, то лучше просто не используйте шаблоны.
Также обратите внимание, что более свежие версии пхп (7.х) гораздо эффективнее, а расширение mysql_
устарело еще лет 10 назад, и собственно в пхп 7 его уже и нет. Используйте PDO:
$sth = $pdo->query('select...');
$options = $sth->fetchAll();
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Установил и привязал теги к "Клиентам" по инструкции creocoder/yii2-taggable, всё работает как нужноКак привязать фильтр к этим тегам в GridView?
В основной теме, не дочерней, в файле functionsphp используется код для вывода хлебных крошек без использования хуков, примерно так: