2009-10-16 91 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