账号通
    

账号  

密码  

2865

查看

7

回复
主题:[原创]sql标签之通用化做法 [收藏主题] 转到:  
awmust 当前离线

200

主题

0

广播

0

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

用户积分:1108 分
登录次数:214 次
注册时间:2006/8/27
最后登录:2019/4/17
awmust 发表于:2007/1/27 20:59:00   | 显示全部帖子 查看该作者主题 楼主 
做在线知识付费 选科汛云开店
以下是引用monfs在2007-1-27 16:39:56的发言:

前言:在学校的日子总感觉很忙,没有经常上论坛,也没有深入研究程序,今日重新对系部网站的sql标签做通用化处理,我一直最喜欢的就是这个功能,因此我架构的系部站点全部使用了sql标签;当时就发现sql标签有个参数的用法,只是一直官方也没有出教程,好在alluse版主在http://bbs.kesion.com/dispbbs.asp?boardid=2&id=14939帖子中有明确的解释,当时收藏后没有怎么研究,今日看了一遍,大有感慨,特写此教程并同时将曾今写的东西通用化!

望广大kesion爱好者能有更多理解!

 :P

下面这段sql语句是我以前没有通用化的时候写的,比较的长,其实很好理解

select KS_Article.id,KS_Article.Tid,KS_Article.Title,KS_Article.Adddate,KS_Class.ID,KS_Class.FolderName from KS_Article,KS_Class where KS_Article.Tid = KS_Class.id and KS_Class.tn = '20061509588074' or  KS_Article.Tid = KS_Class.id and KS_Class.id = '20061509588074'order by KS_Article.id desc

那么他所要实现的效果是

 
此主题相关图片如下:

相关html代码(需有CSS支持)

<ul>[loop=10]
      <li><span>{$Field(adddate,Date,MM-DD)}</span><div>[<a href="{$Field(tid,GetClassUrl,1,1)}">{$Field(foldername,Text,0,…,0,)}</a>] <a href="{$Field(id,GetInfoUrl,1,1)}" target="_blank">{$Field(title,Text,36,…,0,)}</a></div></li>[/loop]
</ul>

这个是我在首页的应用,大家可以很明显的看到,实现的效果实际上是查询相同副栏目下子栏目的新闻,并且显示栏目名称

更新后的sql查询语句

select KS_Article.id,KS_Article.Tid,KS_Article.Title,KS_Article.Adddate,KS_Class.ID,KS_Class.FolderName from KS_Article,KS_Class where KS_Article.Tid = KS_Class.id and (KS_Class.tn = '{$Param(0)}' or KS_Class.id = '{$Param(0)}') order by KS_Article.id desc

此sql语句的标签名称为:首页通用Param

那么对应在模板中的调用为:{SQL_首页通用Param(20061509588074)}

这里的20061509588074,即副栏目的id,通用后,一条sql就可以实现多个栏目的共同调用!

不错,难道只能在首页中用吗?其它页不行吗?应该到处都可以用吧?:

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.04688秒 powered by KesionCMS 9.0