聪明地在模板中使用foreach两次



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

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

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

在呈现页面时,仅显示第一个foreach。如果我把第二个放在上面,那个就被渲染了。此外,$r和$r都有值$我是不是错过了什么?

问候Steffem

您是否尝试过巧妙的方法来声明foreach?

{foreach item=r from=$res}

首先,我使用了智能示例应用程序中给出的方法:

// 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项目,这两种方法都不是真正安全的。当我完成其他东西的构建后,我会处理这个问题。不过,出于开发目的,我完全可以接受。

最新更新