2013-09-23 70 views
0

我忙於使用Prestashop。不幸的是,我從未與Smarty合作過。我有以下問題:如何將PHP數組分配到Smarty數組中,以及如何使用Smarty在我的模板中讀取它?將PHP數組更改爲Smarty數組並讀取模板中的結果

$query="SELECT id_category, id_parent FROM ps_category ORDER BY id_category ASC, id_parent ASC"; 

$result = mysql_query($query); 

while (list($hlc_id_category, $hlc_id_parent) = mysql_fetch_row($result)) 
    { 
    $query="SELECT name, description FROM ps_category_lang WHERE id_category = '" . $hlc_id_category . "'"; 

    $resultnaam = mysql_query($query); 
    list($hlc_categoryname, $hlc_description) = mysql_fetch_row($resultnaam); 

    if ($hlc_id_parent == 2) 
    { 
    $hlc_category_class = 'hoofdcategorie'; 
    } 

    if ($hlc_id_parent > 2) 
    { 
    $hlc_category_class = 'hoofdcategorie'; 
    } 

$hlc_categories[] = array ('hlc_id_category' => $hlc_id_category, 'hlc_categoryname' => $hlc_categoryname, 'hlc_description' => $hlc_description); 
} 
+1

你爲什麼使用'mysql' API?它不再被支持,並有更好的選擇。 – shmuli

+0

你可以推薦我哪些選擇? – Dinizworld

+0

除了你應該避免使用'mysql' API(查看'PDO')這個事實之外,你爲什麼還要爲數據庫使用API​​? Prestashop提供'DB'類來運行你的查詢。 – romainberger

回答

0

嗨首先通過它的變量分配到模板

$smarty->assign('hlc_categories', $hlc_categories); 

然後在你的模板文件中環這樣

{section name=inst loop=$hlc_categories} 
    {$hlc_categories[inst].hlc_id_category} 
    {$hlc_categories[inst].hlc_categoryname} 
{/section} 
0

只需使用:

$smarty->assign('categories', $hlc_categories); 

在模板:

{foreach from=$categories item=category} 
    {$category.hlc_id_category} 
    {$category.hlc_categoryname} 
    {$category.hlc_description} 
{/foreach}