2009-10-16 11 views
1

J'ai problème outputing cette page ..problème de sortie Smarty PHP/template

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

je pouvais le faire comme manualy

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

mais c'est pas vraiment belle façon.

Répondre

2

Que diriez-vous juste de mettre votre "truc" dans un tableau?

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

Ensuite, vous pouvez simplement faire une boucle sur des éléments dans le modèle.

0

On dirait que vous pourriez vouloir utiliser un tableau multi-dimensionnel dans votre code php et une boucle imbriquée dans smarty.

Cela fait longtemps que j'ai travaillé avec php/smarty, donc cette syntaxe peut ne pas être correcte.

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

Dans smarty, vous auriez besoin d'une boucle imbriquée. Je ferais probablement de la syntaxe smarty, mais cela ressemble à un problème similaire: http://www.smarty.net/forums/viewtopic.php?t=14552&highlight=nested+section