帝国CMS文章页怎样调用当前数据表与当前栏目信息(适用于非默认表news) 作者:30yi.cn 时间:2020-09-27
简单概括
核心就一个调用方式:$tbname = $class_r[$GLOBALS[navclassid]][tbname];本函数可以取得当前表名。如果要获取父栏目id、爷爷栏目id也可以通过本方式。
解决思路很简单,获取当前栏目id,基于栏目id倒推出表名,而后放到灵动内部。
一、获取当前栏目数据表名
<?
$tbname = $class_r[$GLOBALS[navclassid]][tbname];
?>
这里标红的tbname,就是表名。如果要获取父栏目id,也是可以使用这个方法的。
二、循环
[e:loop={"SELECT title,titleurl from [!db.pre!]ecms_$tbname where classid ='$GLOBALS[navclassid]' order by newstime desc LIMIT 10",10,24,0}]
<li>
<em <?if($bqno<=3){?> class="cur"<?}?>><?=$bqno?></em>
<a href="<?=$bqr['titleurl']?>" title="<?=$bqr['title']?>" target="_blank"><?=$bqr['title']?></a>
</li>
[/e:loop]
这样就能高效取得数据。
此外:
还有个更简单的方法,但效率比上面的方法低10倍不止,尤其是数据过1万的情况下,本方法效率极低。如果数据量过10万,本方法是噩梦。
这里也顺带贴一下,新手可以使用。
[e:loop={'selfinfo',10,0,0,"id<>'$navinfor[id]'",'newstime desc'}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a>
[/e:loop]
更多帝国CMS开发问题,可以咨询在线客服。