一般情况来说,smarty有两个文件来控制输出
index.php
 
$array = array(
    'id' => 'id',
    'title' => 'title',
    'cid' => 'cid'
)
$aaa = $mysql->get_all($array, 'table_name', 'cid = 1');
foreach($aaa as $aaa1){
    $aaa2[] = array(
        'id' => $aaa1['id'],
        'title' => $aaa1['title'],
        'cid' => $aaa1['cid']
    )
}$smarty->assign('aaa2', $aaa2);
$smarty->display('index.tpl');
index.tpl
<table>
<section name=aaa loop=$aaa2>
  <tr>
    <td><{$aaa2[aaa].id}></td>
    <td><{$aaa2[aaa].title}></td>
  </tr>
</section>
</table>
上面是一个完整的代码,问题来了如果我指定的不是一个CID,不光是CID1,还有CID2,CID3。那么我总不能都在index.php中,写几个$bbb= $mysql->get_all($array, 'table_name', 'cid = 2');
foreach($bbbas $bbb1){
    $bbb2[] = array(
        'id' => $bbb1['id'],
        'title' => $bbb1['title'],
        'cid' => $bbb1['cid']
    )
}$smarty->assign('bbb2', $bbb2);
$ccc= $mysql->get_all($array, 'table_name', 'cid = 3');
foreach($ccc as $ccc1){
    $ccc2[] = array(
        'id' => $ccc1['id'],
        'title' => $ccc1['title'],
        'cid' => $ccc1['cid']
    )
}$smarty->assign('ccc2', $ccc2);现在有没有办法解决这个问题,我在网上查的是用自定义的函数,来实现<showNew lenth=20 type=kk num=5>
  <section name=aaa loop=$aaa2>
  ...
  </section>
</showNew>
这个方法虽然能解决,但还是要加上<showNew></showNew>请问有没有办法直接在<section name=aaa loop=$aaa2 cid=1>请问思路,谢谢

解决方案 »

  1.   


    $array = array(
        'id' => 'id',
        'title' => 'title',
        'cid' => 'cid'
    )
    $aaa = $mysql->get_all($array, 'table_name', 'cid = 1');
    foreach($aaa as $aaa1){
        $aaa2[] = array(
            'id' => $aaa1['id'],
            'title' => $aaa1['title'],
            'cid' => $aaa1['cid']
        )
    }$bb = $mysql->get_all($array, 'table_name', 'cid = 1');
    foreach($bb as $aaa1){
        $aaa2[] = array(
            'id' => $aaa1['id'],
            'title' => $aaa1['title'],
            'cid' => $aaa1['cid']
        )
    }$smarty->assign('aaa2', $aaa2);
    $smarty->display('index.tpl');
    你为什么要用多个数组 同一个数组累加就可以了还有你的get_all方法有问题 你为什么不用 in 而要去查多次
    你完全可以在get_all方法判断传进来的参数是单个还是多个
      

  2.   

    我想实现的是用模版驱动用<section name=aaa loop=$aaa2 cid=1>这样的方式把cid传递进去,但是不知道index.php是如何接收这个CID值的楼上的想法是不错,但是还是得改动index.php