将数组从php传递给Smarty.tpl

2022-08-10 arrays php smarty

我受困于此已有一段时间了……我找不到做我想做的事的方法。以下是我在"mode.php"上的代码。

$libroarray = array(306,303,302,307);

foreach ($libroarray as $librorow) 
        {
            $sql = 'SELECT * FROM '._DB_PREFIX_.'image WHERE `id_product` = '.$librorow;
            $results = Db::getInstance()->ExecuteS($sql)    ;

                foreach ($results as $row) 
                    {
                    $var = $row['id_image'].' ---- '.$row['id_product'].'<br />';                       
                    }
        }   

        $this->smarty->assign('libros', $var);
        return $this->display(__FILE__, 'module.tpl');

我的"mode.tpl"上有这个

{foreach $libros as $item}
{$item}
{/foreach}

我的问题是它只显示"$var"的最后一个结果

256 ---- 307

我试了所有我知道的.没有成功!!...我永远不会理解如何使用数组。我算不出来……我知道它只需轻轻一碰就能起作用,但我就是弄不明白

请注意...有人能帮忙吗?


解决方案

$var是字符串而不是数组...使用$var[]

$libroarray = array(306,303,302,307);

$var = array();
foreach ($libroarray as $librorow) 
    {
        $sql = 'SELECT * FROM '._DB_PREFIX_.'image WHERE `id_product` = '.$librorow;
        $results = Db::getInstance()->ExecuteS($sql)    ;

            foreach ($results as $row) 
                {
                $var[] = $row['id_image'].' ---- '.$row['id_product'].'<br />';                       
                }
    } 



        $this->smarty->assign('libros', $var);
        return $this->display(__FILE__, 'module.tpl');

相关文章