Smarty PHP /模板输出问题

时间:2009-10-16 10:09:55

标签: php templates smarty

我有问题输出到页面..

for ( $i = 0; $mainarray[$i] != ''; $i++ ){ 
$query =  mysql_query("SELECT ... FROM ... WHERE id=$i") or die(mysql_error());
while($tmp = mysql_fetch_assoc($query))
{
    $something[] = $tmp;
}
$smarty->assign('stuff'.$i, $something); 
  }

我可以像

那样手动完成
{section name=i loop=$stuff1}
.....
{/section}
{section name=i loop=$stuff2}
.....
{/section}

但那不是很好的方式。

2 个答案:

答案 0 :(得分:2)

将你的“东西”放入数组怎么样?

$stuff = arrray();
for ( $i = 0; $mainarray[$i] != ''; $i++ ){ 
    $query =  mysql_query("SELECT ... FROM ... WHERE id=$i") or die(mysql_error());
    while($tmp = mysql_fetch_assoc($query))
    {
        $something[] = $tmp;
    }
    $stuff[] = $something;
}

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

然后你可以循环模板中的东西。

答案 1 :(得分:0)

看起来你可能想在php代码中使用多维数组,在smarty中使用嵌套循环。

自从我使用php / smarty以来已经有一段时间了,所以这种语法可能不正确。

$stuff = array();
foreach ($mainarray as $i) {
    $query =  mysql_query("SELECT ... FROM ... WHERE id=$i") or die(mysql_error());
    $something = array();
    while($tmp = mysql_fetch_assoc($query)) {
        $something[] = $something;
    }
    $stuff[] = $something;
}
$smarty->assign('stuff', $stuff);

在smarty中你需要一个嵌套循环。我可能会使用聪明的语法,但这看起来像一个类似的问题: http://www.smarty.net/forums/viewtopic.php?t=14552&highlight=nested+section