账号通
    

账号  

密码  

7766

查看

15

回复
主题:KesionCMS系统SQL标签应用详解 [收藏主题] 转到:  
科汛官方 当前离线

47268

主题

145

广播

405

粉丝
添加关注
级别:管理员

用户积分:101604 分
登录次数:7935 次
注册时间:2006/12/7
最后登录:2023/12/14
科汛官方 发表于:2010/4/14 11:29:00   | 只看该作者 查看该作者主题 楼主 
做在线知识付费 选科汛云开店

Kesioncms从早期版本就开始支持SQL标签,由原来最简单的应用,发展到支持参数调用,支持循环体判断等,至今已是比较完善前台调用应用了。但由于使用SQL标签的前提是需要会写SQL语句的,相对系统函数标签来讲入门高了点,但由于SQL标签的灵活性,它不仅能调用科汛主数据库的所有表,还可以调用外部数据源的所有表,如excel,mssql,mysql,access等多种数据源。所以我们有必要进一步的了解SQL标签的应用。


具体的SQL 语句初学者还得多加努力去学习,如可以参阅:http://bbs.kesion.com/dispbbs.asp?boardid=42&Id=42054。今天主要给大家说下SQL标签参数调用的应用方法,一些用户还不能很好的掌握这个功能。


一.Param参数的应用


 这个应该是较常见的应用,Param参数从0开始索引,对应的参数如{$Param(0)},{$Param(1)}...{$Param(10)}


举例说明:我们建一个通用的SQL标签,调用10条文章,并且要求这个SQL标签能根据传递不同的栏目号重复的使用。


标签名称:通用文章列表


SQL语句如下:


select top 10 id,title,adddate from ks_article where tid='{$Param(0)}'  and verific=1 order by id desc


循环体:


[loop=10]
<li><a href="{$Field(id,GetInfoUrl,1,1)}">{$Field(title,Text,0,...,0,)}<a></li>
[/loop]


注意到上面的SQL语句中我们应用到了{$Param(0)},即这个标签具备接收参数功能了,接下来我们就可以在想要调用的模板里通过以下形式调用了


{SQL_通用文章列表(栏目ID)}   tips:栏目ID号可以到后台的栏目管理里查看


如:{SQL_通用文章列表(2010122222222)},{SQL_通用文章列表(20100212555444)}


上面标签还是有点点局限性,可能我们有些地方只需调用3条数据,而有些地方要调用5条,这时我们可以对sql语句稍加修改,如下


sql语句:


select top {$Param(1)} id,tite,adddate from KS_Article Where Tid='{$Param(0)}' and verific=1 order by id desc


循环体:


[loop={$Param(1)}]
<li><a href="{$Field(id,GetInfoUrl,1,1)}">{$Field(title,Text,0,...,0,)}<a></li>
[/loop]


这样我们就可以自由的获取条数了,如


如:{SQL_通用文章列表(2010122222222,3)},{SQL_通用文章列表(20100212555444,5)}


使用说明:


1.标签的参数调用以逗号隔开,不能将通用标签作为标签参数,如以下调用是错误的


{SQL_标签名称({$GetSiteName})}


2.SQL标签不管带不带参数,调用时一定都要带括号,否则会出错


错误:


{SQL_标签名称}


正确:


{SQL_标签名称()}
 


二、ReqStr和ReqNum标签的应用


 接下来我们讲下ReqStr和ReqNum的应用,这两个标签能获得URL传递过来的参数,ReqStr得到的是字符类型的数据,而Req取得的是数字类型的数据


举例说明:我们要通过URL来获取某个会员最新发表的的20篇文章
URL如下:http://www.abc.com/index.asp?inputer=admin


标签名称:通用会员文章列表


SQL语句:


select top 20 id,title,adddate from ks_article where inputer='{ReqStr(inputer)}' and verific=1 order by id desc


循环体:


[loop=20]
<li><a href="{$Field(id,GetInfoUrl,1,1)}">{$Field(title,Text,0,...,0,)}<a></li>
[/loop]


 调用:{SQL_通用会员文章列表()}


注意到我们的sql语句里应用了{ReqStr(inputer)},通过这个标签可以获得url传递过来的inputer参数值admin,即最终转换为这样的sql语句


select top 10 id,title,adddate from ks_article where inputer='admin' and verific=1 order by id desc


说明:


1.此应用适合于需要根据url传参数的地方


2.如果获取得是数字,请用ReqNum标签,否则可以导致你的数据库存在注入漏洞。

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
wapsy520 当前离线

655

主题

0

广播

0

粉丝
添加关注
级别:六年级

用户积分:2075 分
登录次数:75 次
注册时间:2010/1/23
最后登录:2013/7/17
wapsy520 发表于:2010/5/2 1:30:00   | 只看该作者 查看该作者主题 沙发 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
ubow 当前离线

41

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:49 分
登录次数:12 次
注册时间:2010/1/14
最后登录:2011/4/6
ubow 发表于:2010/5/1 10:08:00   | 只看该作者 查看该作者主题 藤椅 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
sagezwt 当前离线

63

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:349 分
登录次数:5 次
注册时间:2010/3/3
最后登录:2010/12/24
sagezwt 发表于:2010/4/30 17:50:00   | 只看该作者 查看该作者主题 板凳 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
zouling 当前离线

118

主题

0

广播

0

粉丝
添加关注
级别:一年级

用户积分:967 分
登录次数:56 次
注册时间:2009/10/19
最后登录:2010/6/3
zouling 发表于:2010/4/17 22:15:00   | 只看该作者 查看该作者主题 报纸 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
kkynietg 当前离线

217

主题

0

广播

1

粉丝
添加关注
级别:二年级

用户积分:1242 分
登录次数:48 次
注册时间:2006/12/29
最后登录:2016/5/11
kkynietg 发表于:2010/4/22 9:56:00   | 只看该作者 查看该作者主题 地板 
科汛在线考试系统(NET)
ReqNum和ReqStr只能放在动态页吗?静态页用Ajax方法调用可以不?
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
rsjq 当前离线

125

主题

0

广播

0

粉丝
添加关注
级别:一年级

用户积分:350 分
登录次数:6 次
注册时间:2010/4/8
最后登录:2010/6/26
rsjq 发表于:2010/4/21 14:39:00   | 只看该作者 查看该作者主题 7楼 
科汛在线网校系统

恩  很适合我的 帖子 谢啦!!!

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
浪侠 当前离线

416

主题

4

广播

1

粉丝
添加关注
级别:四年级

用户积分:2073 分
登录次数:299 次
注册时间:2007/2/12
最后登录:2019/3/14
浪侠 发表于:2010/4/16 8:53:00   | 只看该作者 查看该作者主题 8楼 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
ep165 当前离线

1593

主题

8

广播

5

粉丝
添加关注
级别:高一年

用户积分:5843 分
登录次数:311 次
注册时间:2008/12/22
最后登录:2017/11/17
ep165 发表于:2010/4/15 18:17:00   | 只看该作者 查看该作者主题 9楼 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
cn2009 当前离线

1515

主题

3

广播

2

粉丝
添加关注
级别:高一年

用户积分:6151 分
登录次数:170 次
注册时间:2008/12/28
最后登录:2020/9/8
cn2009 发表于:2010/4/14 22:27:00   | 只看该作者 查看该作者主题 10楼 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.20410秒 powered by KesionCMS 9.0