2012-02-26 5 views
0

Мне нужно получить информацию из моей базы данных и отобразить ее в .tpl (файл smarty). Мой пример кода: PHP код:Результаты базы данных PHP + Smarty

global $smarty; 
$db = Db::getInstance(); 
$this->_sql = 'SELECT `clientName`, `clientWebsite`, `clientFeedBack` FROM `ps_feedBackPresta` WHERE `confirm`="1" AND `approve`="1"'; 
$config = $db->getRow($this->_sql); 
$smarty->assign('feedBacks', $config); 

И мой умник код:

<a href="{$feedBacks.clientWebsite}" title="{$feedBacks.clientName}">{$feedBacks.clientName}</a><br /> 
     {$feedBacks.clientFeedBack} 

Выходной результат: Img 1

С помощью этого кода все отлично работает (в том числе с кириллицей), но когда я попытайтесь вывести больше результатов wiht {foreach} и этот код в моем .tpl:

{foreach $feedBacks as $feedBackss} 
     <a href="{$feedBackss.clientWebsite}" title="{$feedBackss.clientName}">{$feedBackss.clientName}</a><br /> 
     {$feedBackss.clientFeedBack} 
     {/foreach} 

Результат: Img 2

Так где же моя ложь, и как это исправить? Это мой второй день тряс головой :)

BR, Джордж :)

ответ

0
Print_r($config) 

покажет вам, что выглядит ваши данные, как, прежде чем он идет в Smarty

+0

Да, я знаю об этом, но мое ложное в методе получения базы данных. –

+0

'{$ feedBackss.clientFeedBack}' не так, как вы думаете, напечатайте массив и посмотрите как это выглядит на самом деле. –

0

Я подозреваю, что проблема заключается в $config = $db->getRow($this->_sql);. Вы выбираете одну строку, а не массив из них. получите все строки, и ваш foreach будет работать. Если у вас есть сомнения, проконсультируйтесь с $config = array($db->getRow($this->_sql));

+0

$ db-> getRow ($ this -> _ sql) показывает только первую строку (я этого не знаю) и с массивом ($ db-> getRow ($ this -> _ sql)) единственным изменением является тип массива от одномерного до двухмерного ... Я должен использовать $ db-> ExecuteS ($ this -> _ sql); –

Смежные вопросы