Smarty在模板中使用foreach两次

时间:2013-12-11 14:20:39

标签: arrays foreach smarty

我有一个变量$ res,它存储了我数据库中的一些值。 在我的模板中,我想多次使用这个变量和foreach:

        {foreach $res as $r}
        <h1>{$r.name}</h1>
        {/foreach}


        {foreach $res as $r}
        <h1>{$r.image1}</h1>
        {/foreach}

呈现页面时,仅显示第一个foreach。如果我将第二个放在顶部那个渲染。 $ r。$也有值 我错过了什么吗?

此致 Steffem

2 个答案:

答案 0 :(得分:0)

你是否尝试过宣布foreach的聪明方式?

{foreach item=r from=$res}

答案 1 :(得分:0)

首先,我使用的是smarty示例应用程序中给出的方式:

// database object
  var $pdo = null;
  // smarty template object
  var $tpl = null;
  // error messages
  var $error = null;

  /* set database settings here! */
  // PDO database type
  var $dbtype = 'mysql';
  // PDO database name
  var $dbname = 'database';
  // PDO database host
  var $dbhost = 'localhost';
  // PDO database username
  var $dbuser = 'guestbook';
  // PDO database password
  var $dbpass = 'foobar';

然而,在任何地方使用foreach语句两次都没有用。 现在我用简单的方式做到这一点:

mysql_connect("localhost", "username", "foobar") or die(mysql_error());
mysql_select_db("database") or die(mysql_error()); 

这对我有用并解决了问题。 但是要注意:如果要构建一个严肃的Web项目,这些方法都不是真的安全。我将在以后完成其他工作的时候处理这​​个问题。出于开发目的,我对此非常好。