账号通
    

账号  

密码  

10302

查看

23

回复
主题:[原创]自定义SQL标签在科讯中的应用 [收藏主题] 本贴被认定为精华 转到:  
zhanxp 当前离线

83

主题

0

广播

0

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

用户积分:1149 分
登录次数:55 次
注册时间:2007/9/27
最后登录:2010/8/30
zhanxp 发表于:2007/10/21 17:12:00   | 显示全部帖子 查看该作者主题 楼主 
做在线知识付费 选科汛云开店

前言:以前发的都是求助帖,感谢版主当然更要感谢科讯;觉得本帖的内容可能有写朋友会用到,希望对大家有一点帮助...

下面就列出一些我定义部分自定义SQL标签的语句,(不包括外观调用显示部分)
望高手指点,也希望大家能回帖分享你的标签
(全部都是文章系统里面的,其他系统我没怎么用,毕竟都是相通的...废话真多...:D

1.SQL_调用推荐的第一条()
条件:至少有一篇文章设置了推荐
语句:select top 1 ID,Tid,Title from KS_Article where Recommend = 1 order by ID desc
调用:{SQL_调用推荐的第一条()}
PS : 太简单

2.SQL_调用推荐2到10 ()  ----------------------PS:为什么要从2开始呢,有些人就有些BT的需求,比如我,后面还会有任意条到任意条....
条件:有10条以上被设置推荐
语句:select top 9 ID,Tid,Title,Adddate from KS_Article where ID  not in (select top 1 ID from KS_Article where Recommend = 1 order by ID desc ) order by Recommend desc
调用:{SQL_调用推荐2到10()}

3.SQL_站点头条()
条件:至少有一篇被设置了头条
语句:select top 1 ID,Tid,Title,Adddate from KS_Article where Strip = 1 order by Adddate desc
调用:{SQL_站点头条()}

4.SQL_调用某栏目TOP10(Param(0))
条件:栏目里有文章---------------------PS:废话
语句:select top 10 ID,Tid,Title,Adddate,Hits,Intro,Picurl from KS_Article where Tid = '{$Param(0)}' order by ID desc
参数:Param(0)=栏目ID -----------------PS:别告诉我你不知道
调用:如:{SQL_调用某栏目TOP10(200710254)}

5.SQL_某栏目前N条(Param(0),Param(1))
条件:算了不说了,我怕板砖....
语句:select top {$Param(0)} ID,Tid,Title,Adddate from KS_Article where Tid= '{$Param(1)}' order by Adddate desc
参数:Param(0)=要几条,必须是数字,Param(1)=栏目ID如:200710258 类似(在新建SQL第二页下面:)
调用:如: {SQL_某栏目前N条(10,200701255)}

------------------------以下是个人BT需求,不看也罢---------------------------------------
6.配合第五条使用,比如把前10条分成3条和7条,拼起来刚好10条,有时候为了做不同的样式,比如上下宽度不一样,颜色不同等(说多了)

SQL_某栏目前N1到N2条(Param(0),Param(1),Param(2))
语句:select top {$Param(0)} ID,Tid,Title,Adddate from KS_Article where Tid = '{$Param(2)}' and ID  not in (select top {$Param(1)}  ID from KS_Article where Tid = '{$Param(2)}'  order by Adddate desc ) order by Adddate desc
参数:这条语句的参数,请看仔细,否则效果不一定对
N1 到 N2 条
Param(0) = N2 - N1 + 1
Param(1) = N1 - 1
Param(2) = 栏目ID

如: 2到10条
{SQL_某栏目前N1到N2条(9,1,2007102545)}

7.这个适合放在首页显示,显示的时候把栏目名称和文章标题放在一起,很酷的! ,一般我们都是掉用某个栏目,比如某栏目TOP10 ,而这个调出来的10条是你每个栏目各一条 ,解释很费劲,用了就知道了

SQL_每个栏目第一条() 
语句:select ID,Tid,Title,Adddate from KS_Article where ID in (select max(ID) from KS_Article group by Tid)
要求:每个栏有文章~~~~:lol
参数:没有,因为栏目数量不是很多,数量在LOOP里灵活控制
调用:{SQL_每个栏目第一条()  }

好了就这些, 不敢说多高级,所以就叫另类用法吧
希望交些搞网站朋友, mail:wszxp1234@126.com   QQ:314643349
(如有问题,请高手指正,如有帮助,请回个帖,支持下)


[此贴子已经被作者于2007-10-22 0:20:13编辑过]

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

83

主题

0

广播

0

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

用户积分:1149 分
登录次数:55 次
注册时间:2007/9/27
最后登录:2010/8/30
zhanxp 发表于:2007/10/21 20:55:00   | 显示全部帖子 查看该作者主题 沙发 
科汛在线商城系统(NET)

对以上语句的使用进行说明一下:

用第1条加第2条 实现以下效果:

---------------------------------
 1 标题标题标题标题标题 
=====================
  2 标题标题标题标题标题标
  3标题标题标题标题标题标
  4标题标题标题标题标题标
  5 标题标题标题标题标题标
  6标题标题标题标题标题标
  7标题标题标题标题标题标
  8标题标题标题标题标题标
  9 标题标题标题标题标题标
  10标题标题标题标题标题标
--------------------------------


其他把第一条和后面分开的模块都适用,请美工发挥...


第三条实现如下效果


头条标题头条标题头条标题头条标题头条标题
-------------------------------------------------------- 
导读导读导读导读导读导读导读导读导读导读
导读导读导读导读导读导读导读导读导读导读
导读导读导读导读导读.....[全文]

头条标题头条标题头条标题头条标题头条标题
-------------------------------------------------------- 
导读导读导读导读导读导读导读导读导读导读
导读导读导读导读导读导读导读导读导读导读
导读导读导读导读导读.....[全文]

(请稍微改一下,把读字段select 出来...就OK了)



第3 条加第7条实现如下效果

头条标题头条标题头条标题头条标题头条标题
-------------------------------------------------------- 
[栏目名]该栏目第一条    [栏目名]该栏目第一条
[栏目名]该栏目第一条    [栏目名]该栏目第一条 
[栏目名]该栏目第一条    [栏目名]该栏目第一条 
[栏目名]该栏目第一条    [栏目名]该栏目第一条 
[栏目名]该栏目第一条    [栏目名]该栏目第一条 



第四条

方便在任何页面调用任何栏目的前十条
(再加一个参数就可以调用前任意条了)


第五条加第六条

如果说第一条和第二条是将 10条拆分成 1 和 2-9 两段
那么这两条就可以   将【任意】栏目的【任意】条拆分成【任意段】每段【任意】条


如:


---------------------------------
 1 标题标题标题标题标题 
=====================
  2 标题标题标题标题标题标
  3标题标题标题标题标题标
  4标题标题标题标题标题标
  5 标题标题标题标题标题标
======================
  6标题标题标  7标题标题标
  8标题标题标  9 标题标题
  10标题标题   11 标题标题

第七条,上面说过了

[栏目1]该栏目第一条    [栏目2]该栏目第一条
[栏目3]该栏目第一条    [栏目4]该栏目第一条 
[栏目5]该栏目第一条    [栏目6]该栏目第一条 
[栏目7]该栏目第一条    [栏目8]该栏目第一条 
[栏目9]该栏目第一条    [栏目10]该栏目第一条 


注:
1.以上都需要借助DIV+CSS实现,
2.如果top=后面是参数 在loop的时候请也写成参数 如:第五条就是  [loop =Param(0) ]  ----------内容--------    [loop]
3.第五条 Param(0) 必须大于等于1
4.第六条 Param(0) 必须大于等于1      Param(1)必须大于等于1
5.第七条 需要调用几条就写  [loop =条数]  ----------内容--------    [loop]



[此贴子已经被作者于2007-10-21 22:11:26编辑过]

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

83

主题

0

广播

0

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

用户积分:1149 分
登录次数:55 次
注册时间:2007/9/27
最后登录:2010/8/30
zhanxp 发表于:2007/10/21 17:25:00   | 显示全部帖子 查看该作者主题 藤椅 
科汛在线网校系统

如果你看完一楼,知道这个是什么东东,且知道怎么用,鄙人深表感谢.....

这里讲一下SQL标签的创建,以及如何应用一楼的SQL语句,高手跳过。。。

1.1  SQL标签的创建和调用
      (简单讲讲,官方应该有基础教程)
        2.11  新建SQL标签
       【进入后台】-----【标签】-----【自定义SQL函数标签】-----【新建标签(右下】)-----【填写名称等】----【下一步】-----【填写SQL语句和参数(一楼讲的是在这里的应用)】------【下一步】------【填写LOOP标签】---【完成】
          
        2.12  调用SQL标签
        没有参数的SQL标签    在模板里写  {SQL_标签的名字()}
        有参数的SQL标签        在模板里写  {SQL_标签的名字(参数一,参数2,...... 最后一个参数)}

1.2 创建一个简单的SQL标签

      1.21.用SQL标签来实现TOP10

         a 创建SQL标签  "TOP10"
         b 选文章表,和需要的字段生成SQL语句,在次基础上自己手动更改 
           最终如下: select top 10 ID,Tid,Title,Author,Adddate from KS_Article order by ID desc
          ( 选前10个按ID倒序  )
         c 下一步,看到  [loop=10]请在此输入循环内容[/loop]
不好讲了,给例子吧
<ul>
[loop=10]
<li class="nrlist">
<img src="/Upfiles/arrow_list3.gif"/><a href="{$Field(ID,GetInfoUrl,1,1)}" target="_blank" title="{$Field(Title,Text,0,0,0,)}">{$Field(Title,Text,26,0,0,)}</a>
</li>
[/loop]
</ul>
        

          d 完成
       
          1.22  在模板里调用 TOP10

          <div >  {SQL_TOP10()}   </div>
         
          
         OK


1.3 为什么使用自定义SQL标签

      1.方便各种SQL语句来实现各种数据调用的需求

      2.方便在循环的标签里加入 图片,样式,固定文字,链接等

1.4  带参数的标签

       2.2的效果用官方自带标签就能实现,等同与   全站通用最新文章
       变化一: select top 10 ID,Tid,Title,Author,Adddate from KS_Article  where Tid in ({$CurrClassChildID})  order by ID desc
                       等同与 频道通用最新问章  只用于频道页
       变化二: select top 10 ID,Tid,Title,Author,Adddate from KS_Article  where Tid =' {$CurrClassID}' order by ID desc
                       等同与 栏目通用最新问章  只用于栏目页
       变化三: 在1.21 b  那个步骤里  在参数说明里输入  栏目ID   字样,下面会多出一个参数按钮,就是参数1 按下显示的是{$Param(0)}

                       将变化一 和变化二 改为

                     四  select top 10 ID,Tid,Title,Author,Adddate from KS_Article  where Tid in ({$Param(0)})  order by ID desc

                     五  select top 10 ID,Tid,Title,Author,Adddate from KS_Article  where Tid ='{$Param(0)}' order by ID desc

        变化一 和变化二的调用 和前面一样 由于是自动获得参数的值只是限定了使用的页面  都是 {SQL_TOP10()} 

        四和五的调用   {SQL_TOP10(参数的值)}  在参数值填写你想调用的 频道(四) 或 栏目(五) 的ID
       ( ID在SQL语句下面有显示)这两个变化是在任何页面通用的.....


好了 终于讲到这里了,现在再接一楼 ,一楼所有的SQL都是指这里的创建SQL标签的 1.21 b
一楼所有带参数的调用,需要按照对应的顺序在步骤 1.21 b 创建参数说明

-------------------------------------------------------------------------------------------------------------------------
(高手别笑,发个帖我容易吗 ,我 .....)    



[此贴子已经被作者于2007-10-22 1:15:28编辑过]

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