Arrays Smarty在模板中使用foreach两次

Arrays Smarty在模板中使用foreach两次,arrays,foreach,smarty,Arrays,Foreach,Smarty,我有一个变量$res,它存储数据库中的一些值。 在我的模板中,我希望将此变量与foreach一起使用多次,如下所示: {foreach $res as $r} <h1>{$r.name}</h1> {/foreach} {foreach $res as $r} <h1>{$r.image1}</h1> {/foreach} 呈现页面时,仅显示第一个

我有一个变量$res,它存储数据库中的一些值。 在我的模板中,我希望将此变量与foreach一起使用多次,如下所示:

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


        {foreach $res as $r}
        <h1>{$r.image1}</h1>
        {/foreach}
呈现页面时,仅显示第一个foreach。如果我把第二个放在上面,这个就被渲染了。另外,两个$r都有值$ 我错过什么了吗

问候
Steffem

你有没有尝试过用聪明的方式声明foreach

{foreach item=r from=$res}

首先,我使用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项目,那么这两种方法都不是真正安全的。当我完成其他东西的构建后,我将处理这个问题。不过,出于开发目的,我完全同意。

嘿,这是2.x的声明方式。在3.x中,它与我最初发布的一样。不管怎样,我发现当我用简单的方法建立db连接时,它是有效的,而不是用pdo。你好,Steffen,谢谢你的澄清。您可能希望发布解决方案,作为对其他访问者的礼貌。