2009-10-16 57 views
1

我有问题outputing这页..Smarty的PHP /模板输出问题

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); 
    } 

我可以manualy做到像

{section name=i loop=$stuff1} 
..... 
{/section} 
{section name=i loop=$stuff2} 
..... 
{/section} 

但那不是真正的好方法。

回答

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); 

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

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); 

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