smarty嵌套循环,foreach用法

2012-07-18 00:00:00 by 【6yang】, 655 visits, 收藏 | 返回

PHP

function getProductClassName(){
    global $DB;
    $sql = "SELECT * FROM category".languageFront." where pid=-1 order by id asc";
    $rs = $DB->query($sql);
    $i = 0;
    while($rows = $DB->fetch_array($rs)){       
        $sql_sub = "SELECT id, name, pid FROM category".languageFront." where pid='".$rows['id']."' order by id desc";
        $rs_sub = $DB->query($sql_sub);
        while($rowssub = $DB->fetch_array($rs_sub)){
            $post[]=array('pid'=>$rowssub['pid'],
                            'id'=>$rowssub['id'],
                            'name'=>$rowssub['name']
                        );
        }
        $row_array[] = array('id'=>$rows['id'],
                              'name'=>$rows['name'],
                              'pid'=>$rows['pid'],
                              'sub_name'=>$post                      
                       );
        unset($post);  
    }
    //print_r($row_array);
    return $row_array;   
}

 

 

 

html smarty

 

 

<ul>
            {@ foreach name=custom from=$productClassName item=i@}
            <li class="nav-i  {@if $getProductCid==$i.id@}current{@/if@}">
                <div class="p-t"><span class="arrow"></span> <img src="images/img-cate0{@ $smarty.foreach.custom.index+1 @}.png"  class="pro-cate-img png_bg"/> <a href="product.php?cid={@ $i.id @}&#myPostion">{@ $i.name @}</a></div>
                <ul class="sub-nav">
                    {@foreach from=$i.sub_name item=j name=foo_sub@}
                        <li><a href="#">{@ $j.name@}</a></li>
                    {@/foreach@}
                </ul>
            </li>
            {@ /foreach @}
        </ul>

分享到:
share

    图片原图

    loading

    loading