Группа: Администратор Регистрация: 23.10.2009 | Не совсем понятно что хотите сделать. Судя по запросу вы хотите вывести значение только одной строки, тогда не нужно применение foreach в шаблоне. И не видно строки передачи в шаблон. Если хотите не показывать строки с определенными значениями, то проще отграничить это в запросе, а не выводить и потом уже проверять на пустоту. Сделаю простой пример, скорее это то что вам и надо protected function getFiltername() { $cid = intval(Arr::getRequest('cid')); $namefilter = $this->_db->cache_fetch_assoc("SELECT Spez_1 FROM " . PREFIX . "_shop_kategorie_spezifikation WHERE Kategorie = '" . $cid . "' LIMIT 1"); return $namefilter; } $this->_view->assign('namefilter', $this->getFiltername()); // Передача переменной в шаблоне {$namefilter.Spez_1} // Это в шаблоне значение полученное из базы
|
Но что то не так, получается только одно значение, а скорее всего вам нужны все значения для категории, так вернее должно быть protected function getFiltername() { $cid = intval(Arr::getRequest('cid')); $namefilter = $this->_db->cache_fetch_assoc("SELECT Spez_1 FROM " . PREFIX . "_shop_kategorie_spezifikation WHERE Kategorie = '" . $cid . "'"); $array = array(); while ($row = $namefilter->fetch_object()) { $array = $row['Spez_1']; } $result->close(); return $array; } $this->_view->assign('namefilter', $this->getFiltername()); {foreach from=$namefilter item=row} {if $smarty.request.namefilter == $row.Spez_1} {$row.Spez_1} {/if} {foreach}
|
Таким образом мы получаем все подмножество строк, что бы ограничить не нужные значения можно сделать гораничение в запросе по принципу AND Spez_1 != NULL AND Spez_1 != '' Хотя можно сделать проверку и в цикле while, что выше в примере, добавив проверку if (!empty($row['Spez_1'])) { }
|
Но правильней сделать проверку на равенство ключа namefilter из маасива request, в том же while, что в примере выше, и сразу получить массив нужных значений, а вернее одно судя по условию. И в итоге озадачивает мысль, зачем вы делаете запрос в базу, получаете массив, передаете в шаблон, а потом условием отсекаете и получаете значение которое уже у вас есть в ограничивающем условии, а точнее вот оно $smarty.request.namefilter??? |