【问题标题】:Change a PHP array into a Smarty Array and read results in template将 PHP 数组更改为 Smarty 数组并在模板中读取结果
【发布时间】:2013-09-23 21:34:56
【问题描述】:

我正忙于 Prestashop。不幸的是,我以前从未与 Smarty 合作过。我有以下问题:如何将 PHP 数组分配更改为 Smarty 数组以及如何使用 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);
}   

【问题讨论】:

  • 您为什么使用mysql API?它不再受支持,但有更好的选择。
  • 你能推荐我哪些替代品?
  • 除了您应该避免使用mysql API(查看PDO)之外,您为什么还要为数据库使用API​​? Prestashop 提供 DB 类来运行您的查询。
  • 是的,我知道,就像我说的,我是 Prestashop 和 Smarty 的新手。如果我的数组问题有解决方案,下一步就是使用 DB 类。
  • @Dinizworld: PDOmysqli(mysql 改进)是不错的选择。

标签: php mysql arrays smarty prestashop


【解决方案1】:

你好先把变量赋值给模板

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

然后在你的模板文件中像这样循环遍历它

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

【讨论】:

    【解决方案2】:

    只需使用:

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

    在模板内:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 2019-03-28
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多