灵动标签内sql语句调用
本节来介绍帝国cms中,灵动标签中如何写数据库调用我们所要的信息。方便一些没有学习过数据库的朋友
转载请注明出处:谢寒的博客
灵动标签默认的语法
[e:loop={栏目ID/专题ID,显示条数,操作类型,只显示有标题图片,附加SQL条件,显示排序}]
模板代码内容
[/e:loop]
案例1
代码:
[e:loop={'select title,titleurl,titlepic from [!db.pre!]ecms_news where classid in(46,47,51) and isgood=1,0,24,0}]
解释:
select title,titleurl,titlepic 意为调出:数据表内容的title titleul titlepic字段。
from [!db.pre!]ecms_news 意从数据表为ecms_news 的数据表中调出信息,[!db.pre!]是数据表前缀变量,帝国默认的数据表前缀为phome,也就是从phome_ecms_news 中调出信息的意思。
where classid in(46,47,51) 的意思为从栏目id为46,47,51栏目中调出信息,也就是选择条件
and isgood=1 进一步的选择条件,选择其中一级推荐的内容。
所以总结的意思就是从数据库的[!db.pre!]ecms_news数据表中调用出栏目id为46,48,51并且推荐等级为的1一级推荐的内容字段,包括:title,titleurl,titlepic
举一反三
多表信息调用
[e:loop={'select title,titleurl,titlepic from [!db.pre!]ecms_news where classid in(46,47,51) and isgood=1 Union All select title,titleurl,titlepic from [!db.pre!]ecms_download',0,24,0}]
Union 是链接符 意思为调用前面[!db.pre!]ecms_news 数据表内的,还调用下载数据表(ecms_download)内的内容
这里有一个万能的调用方式为
[e:loop={'select * from [!db.pre!]ecms_news where classid in(46,47,51) and isgood=1,0,24,0}]
意思为可调用数据表(ecms_news)栏目(46,47,51)下的所有字段。
可在调用方式中加附加条件,
可指定按相应的字段排序:order by id desc
帝国的灵动标签功能非常丰富,也不是一时半会儿能够完全讲清楚,学习者要多加钻研和联系,掌握这个标签,帝国的整套功能,也就能轻松驾驭了