最好是用section,也可以考虑foreach。具体语法吗,可以看我翻译的Smarty中文手册:http://www.rsywx.net

解决方案 »

  1.   

    最好是在取数据的时候构造,而不是在smarty里想办法。比如
    一、
    取数据的时候。
    假设数据里字段为id ,datawhile($arr=mysql_fetch_assoc($result))
    {
      $info[]=$arr;
    }smarty里写为:<!-- BEGIN info -->
      {id}   {data} 
    <!-- END info -->这时候就已经循环显示了。二、也可以处理多维数组。
    比如。在上面的$info里。增加一个字段,data_2 ,同时data_2是数组,包含了id,data_2两个字段。那么smarty里写为:
    <!-- BEGIN info -->
      {id}   {data}
       <!-- BEGIN data_2 -->
          {id}  {data_2}
       <!-- END data_2 -->
    <!-- END info -->
      

  2.   

    我比较喜欢用这样的方式。php $result = mysql_query("SELECT id, name FROM mytable");    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
          $datas[] = $row; 
        }$smarty->assign('data',$datas);
    $smarty->display('test.html');test.html{section  name = i loop = data}
    {$data[i].id} {$data[i].name}
    {/section}一般是放在table里面
      

  3.   

    {foreach from=$custid item=curr_id}
    id: {$curr_id}<br>
    {/foreach}
      

  4.   

    手册上都清清楚楚的.呵呵.
    http://oss.org.cn/man/develop/php/Smarty-2.6.0-docs-zh-CN/manual/language.function.foreach.html
      

  5.   

    比如$DataArr是一个数据:
    $DataArr=array("1"=>array("1"=>"a","2"=>"b"),"2"=>array("1"=>"c","2"=>"d"));把这个数据传给Smarty模板后:
    <table border="1">
    {foreach from=$DataArr key=j item=Data}
      <tr>
        <td>第{$j}行
        </td>
         <td>{$Data.1}
        </td>
         <td>{$Data.2}
        </td>
      </tr>
    {/foreach}
    </table>结果显示:
    第1行  a  b  
    第2行  c  d