使用{foreach}标记在我的网站中显示简单数组没有问题。我有一点时间转换我的一个更复杂的数组用于smarty模板系统。我已经尝试了很多时间让它工作,但它没有显示。我的数组计算表中的行以确定是否创建新行。有人能指出我如何重写这个阵列以使用智能模板系统吗?
<?php
$field = 0;
echo "<table><tbody>";
mysql_connect("xxxx", "xxxx", "xxxx") or
die("Could not connect: " . mysql_error());
mysql_select_db("xxxx");
$result = mysql_query("SELECT item_id FROM user_item");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
if ($field % 5 == 0) echo '<tr>';
echo '<td><img src="img/items/'. intval($row["item_id"]). '.png"></td>';
if ($field % 5 == 4)
{
echo '</tr>';
$field = 0;
}
else
$field++;
}
mysql_free_result($result);
?>
答案 0 :(得分:0)
您必须使用foreach属性index,iteration,first和last:http://www.smarty.net/docs/en/language.function.foreach.tpl
{foreach $data as $row}
{if $row@index is div by 4 or $row@first}
<tr>
{/if}
<td> ... something ...</td>
{if $row@iteration is div by 4 or $row@last}
</tr>
{/if}
{/foreach}