一般情况来说,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>请问思路,谢谢
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>请问思路,谢谢
$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方法判断传进来的参数是单个还是多个