2013-12-11 31 views
0

我有一个变量$ res,它存储来自我的数据库的一些值。 在我的模板,我想多次使用这个变量在foreach这样的:当页面呈现在显示Smarty在模板中使用foreach两次

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


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

只有第一的foreach。如果我把第二个放在顶部,那个被渲染。也有价值$ r。$ 我错过了什么吗?

问候 Steffem

回答

0

你尝试宣告一个foreach的智者路?

{foreach item=r from=$res} 
+0

嘿,那是宣布它的2.x方式。 在3.x它就像我最初发布。 无论如何,我想通了,当我建立数据库连接的简单方法,而不是与pdo。 – Steffen

+0

您好Steffen,谢谢澄清。您可能希望将解决方案作为礼节发布给其他访问者。 –

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项目,这两种方法都不是真的安全。稍后当我完成其他内容时,我会处理这个问题。对于开发的目的,我绝对没问题。