这里不知道你说的多个分类具体是指什么情况,所以给出两种我们使用phpcms网站建设中常见的调用多个栏目的情况:
一、多个栏目正好是某个栏目下的子栏目,例如在“phpcms教程”(catid:1)栏目中有“使用教程”(catid:2)和“二次开发”(catid:3)两个子栏目,你想同时调用两个子栏目中的内容,这种情况下,直接指定父级栏目id即可,跟普通调用一样,因为phpcms系统会自动判断指定的栏目有无子栏目,如果有,获取所有子栏目下内容。
演示:
{pc:content action="lists" catid="1" num="10" order="id desc"}<ul>
{loop $data $v}
<li><a href="{$v[url]}">{$v[title]}</a></li>
{/loop}
</ul>
{/pc}
二、“多个栏目”是离散的无规律范围,例如有两个栏目它们不是同父级,catid分别是2和5,可能是你随机指定的两个,同时调用它们下面的文章就不能直接使用pc标签里的catid属性去指定了,我们使用where属性来直接限定数据读取条件。
演示:
{pc:content action="lists" catid="2" num="10" order="id desc" where="catid=2 or catid=5"}<!--这里的如果有where属性,catid属性指定的栏目范围已经无效了,但是还是要写上,不然会出错,所以这里catid属性的值可以随便写,但是保证其栏目的数据模型相同即可-->
<ul>
{loop $data $v}
<li><a href="{$v[url]}">{$v[title]}</a></li>
{/loop}
</ul>
{/pc}
PS:
如果你了解php编程和mysql数据库,会发现在第二种情况下实际上就是使用where属性直接指定sql命令中的where条件。你可以通过二次开发phpcms的标签解析方法来扩展更丰富的功能,这里的相关程序目录是 /phpcms/modules/content/class/content_tag.class.php里面的lists方法。
phpcms的详细使用开发教程可参考官方说明文档或到 iphpcms里来学习~
mysql_query("set character set gb2312")$sql='select distinct sy from menu order by sy'
$res=mysql_query($sql)
$bysy=array()
while($row = mysql_fetch_row($res)) $bysy[]=$row[0]
mysql_free_result($res)
foreach ($bysy as $m){
echo '<p><strong>'.$m.'</strong><br />'
$sql="select distinct name from menu where sy='$m' order by name"
$res=mysql_query($sql)
$bygs=array()
while($row=mysql_fetch_row($res)) $bygs[]=$row[0]
mysql_free_result($res)
foreach($bygs as $n){
echo ' <em>'.$n.'</em><br />'
$sql="select id,title from menu where sy='$m' and name='$n'"
$res=mysql_query($sql)
while($row=mysql_fetch_row($res)){
echo ' <a href="news.php?id='.$row[0].'">'.$row[1].'</a><br />'
}
mysql_free_result($res)
}
echo '</p>'
}
mysql_close()
给个初始参数吧。。。第一句写上
$tid = $tid ? $tid : 1
或者
fucntion arcadd($tid = 1)
或者
加个判断
if($tid){
//
}else{
//
}
不然还能怎么办?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)