php在smarty tpl中显示所有数据库记录

时间:2016-03-11 04:02:35

标签: php mysql smarty

我想创建一个数组并将其分配给smarty模板以显示我的所有新闻。但问题是它只是拿起表中的第一行数据,我该如何解决这个问题呢?它只显示数据库中的第一行和其他4行

我正在使用mysqli for db driver ...

$newsArray = array();
        $row = autoLoader::getLibrary('database')->query("SELECT * FROM `cms_news`")->fetch_array();
            $newsArray[] = $row;

        $this->smarty->assign('website_news', $newsArray);

然后我在tpl

中使用此代码显示它
{section name=nr loop=$website_news} 
   {$website_news[nr].id} 
   {$website_news[nr].title} 
   {$website_news[nr].shortstory}<br /> 
{sectionelse} 
   <h1>No news found!</h1> 
{/section} 

2 个答案:

答案 0 :(得分:0)

$newsArray = autoLoader::getLibrary('database')->query("SELECT * FROM `cms_news`")->fetch_all(MYSQLI_BOTH);
$this->smarty->assign('website_news', $newsArray);

答案 1 :(得分:-1)

您的模板似乎没问题。问题是您的日期没有作为数组完全加载。这是一个php(控制器)端错误。您可以验证print_r($newsArray);是否包含完整数据。