Ответить Новая тема Новый опрос 
 вопрос по отображению sql запроса
meskalin
Новичок
Сообщений: 13
Регистрация: 29-12-2014


02-02-2015 22:03
Добрый день!

Пытаюсь сделать небольшой запрос в базу с последующим отображением.
Имеем сам модуль
Код:
<?php
class mymoduledisplayModuleFrontController extends ModuleFrontController
{
  public function initContent()
  {
    parent::initContent();
    $this->setTemplate('display.tpl');
    
    
     $this->context->smarty->assign(
     $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
            SELECT p.id_product, p.price
            FROM `'._DB_PREFIX_.'product` p
            WHERE (p.`id_product` > 155)
            ORDER BY `id_product` '));    
        $returns = array();
    
        foreach ($result as &$row)
        {
        $return = $this->context->smarty->assign(
         array(
         'id' => $row['id_product'],
         'price' => $row['price'],
        )
         );
        }
        
        return $returns;
        return $this->display(__FILE__, 'display.tpl');
  }
}        


И соответственно файл display.
Код:
{include file="$tpl_dir./errors.tpl"}
{foreach from=$returns item=return name=fast}
  <hr />
  {foreach from=$return item=price}
  {$id} {$price} <br />
  {/foreach}
{/foreach}


Собственно не отображается вообще ничего. Сам запрос в sql проходит нормально. Но для красоты отображения требуется передача в tpl файл. Подскажите хотя бы куда копать.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
savvato11


Cпециалист
Сообщений: 289
Регистрация: 01-09-2012


02-02-2015 23:49
Так вы же не передаете в смарти массив.
Код:
$this->context->smarty->assign('returns',$returns));

 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
RAGE
Cпециалист
Сообщений: 145
Регистрация: 11-12-2011


02-02-2015 23:57
Ты запрос делаешь прямо в передаче смарти ))))
вынеси его в "перед" )))

 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
meskalin
Новичок
Сообщений: 13
Регистрация: 29-12-2014


03-02-2015 19:41
Всем спасибо. Остановился пока на этом. php файл
Код:
<?php
class mymoduledisplayModuleFrontController extends ModuleFrontController
{
  public function initContent()
  {
    parent::initContent();
      $this->setTemplate('display.tpl');
    
    
    
     $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
            SELECT p.id_product, p.price
            FROM `'._DB_PREFIX_.'product` p
            WHERE (p.`id_product` > 155)
            ORDER BY `id_product` ');    
        $return = array();
    
        foreach ($result as &$row)
        {
        $return[$row['id_product']] =
         array(
         'id' => $row['id_product'],
         'price' => $row['price'],
        );
        }
           
        $this->context->smarty->assign('return',$return);
        
  }
    
      
}

display.tpl
Код:
{foreach from=$return item=re}
       {$re.id} : {$re.price} <br />
{/foreach}
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
RAGE
Cпециалист
Сообщений: 145
Регистрация: 11-12-2011


03-02-2015 20:27
еще можешь foreach убрать и передавать сразу $result
тогда в смарти будет:
{$re.id_product} : {$re.price} <br />
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос