问题大概是这样子从数据库获取最新的5条信息,每条信息有5个字段(id,name,cont,job,date),但只通过smarty显示其中的3个字段(cont,name,date),求解在tpl中该怎么写,为什么我循环出来的5条信息全是一样的(第5条)我是这样写的
*********contro******
for ($i=0;$i<5;$i++){
$row=$page->res_array[$i];  //这里获取的全部字段
$smarty->assign("arr",$row);
}
**********tpl*******
{foreach from=$arr item=item1}<hr><span>{$arr.cont}</span>{$arr.name}于{$arr.date}</span>{/foreach}

解决方案 »

  1.   

    *********contro******
    $arr = array();
    for ($i=0;$i<5;$i++){
    $row=$page->res_array[$i]; //这里获取的全部字段
    $arr[] = $row;
    }
    $smarty->assign("arr",$arr);
    **********tpl*******
    {foreach from=$arr item=item1}<hr><span>{$arr.cont}</span>{$arr.name}于{$arr.date}</span>{/foreach}
      

  2.   

    楼上的也错了
    只要把$smarty->assign("arr",$row);这句放在循环外面就可以,不要$arr[] = $row;{foreach from=$arr item=item1}<hr><span>{item1.cont}</span>{item1.name}于{item1.date}</span>{/foreach}
      

  3.   

    tpl应该
    <span>{$arr.cont}</span>{$arr.name}于{$arr.date}</span>
    如果$row是一维数组就不要使用循环,如果是二维数组就使用循环.
    {foreach from=$arr item=item1}<hr><span>{item1.cont}</span>{item1.name}于{item1.date}</span>{/foreach}
      

  4.   

    呵呵   谢谢各位的帮忙 
    *********contro******
     for ($i=0;$i<5;$i++){
     $row[]=$page->res_array[$i]; //这里获取的全部字段
    $smarty->assign("arr",$row);
     }
    **********tpl*******
    {foreach from=$arr item=item1}<hr><span>{$item1.cont}</span>{$item1.name}于{$item1.date}</span>{/foreach}