帝国cms SQL万能标签,实现多表,指定多栏目信息调用:
研究了10多个小时,终于得道。先上代码:
----------------------------------------------------------------
[ecmsinfo]'select * from (select * from phome_ecms_表名1 where checked=1 and classid in (
1610,1616) union select * from phome_ecms_表名2 where checked=1 and classid in (
1289,1290,1291)
) a order by newstime desc limit 100',100,40,1,
24,
54,0[/ecmsinfo]
---------------------------------------------
注意事项:
1. 红色括号千万别遗漏,不是多余的!
2.蓝色部分为指定的栏目ID,切忌必须为终极栏目,如果有多个用“,”分隔。
3.多表的时候用union链接。 也可以直接copy这段代码“ union select * from phome_ecms_表名 where checked=1 and classid in (1289,1290,1291)” ,注意union前有空格。
4.绿色“24”为操作类型SQL,黄色“54”为标签模板。具体万能标签用法,请参照官方教程,这里不在详解。
5. 上面代码是按照时间排序,也可以根据需要显示点击排行或者热门推荐,更多应用还需要自己思考!
分享完毕!~ 欢迎补充。
帝国cms调用制定栏目sql 写法:
<ul class="navbar">
<li class="<?=$GLOBALS[navclassid]?"":"active"?>"><a href="[!--news.url--]">首页</a></li>
<?php
$sql=$empire->query("select classid,sonclass,classname,islast,islist from {$dbtbpre}enewsclass where classid in (1,2,3,4,5,6,7,15,16) and showclass=0 order by myorder,myorder asc");
while($s=$empire->fetch($sql)){
$classurl=sys_ReturnBqClassname($s,9);
$tclass="";
$fr=explode('|',$class_r[$GLOBALS[navclassid]][featherclass]);
$topbclassid=$fr[1]?$fr[1]:$GLOBALS[navclassid];
if($topbclassid==$s[classid]){
$tclass='active';
}
echo '<li class="'.$tclass.'" ><a href="'.$classurl.'">'.$s[classname].'</a>';
if($s[islast]==0){
$sql2=$empire->query("select classid,classname from {$dbtbpre}enewsclass where bclassid=$s[classid] and showclass=0 order by myorder,myorder asc");
$str="";
while($s2=$empire->fetch($sql2)){
$classurl2=sys_ReturnBqClassname($s2,9);
$str.='<li><a href="'.$classurl2.'">'.$s2[classname].'</a></li>';
}
echo '<ul class="dropdown-nav nav-sb br sub-nav animated-fast fadeInUpMenu clearfix">'.$str.'</ul>';
}
echo '</li>';
}
?>
</ul>