账号通
    

账号  

密码  

166918

查看

146

回复
主题:[注意]KesionCMS SQL标签中条件语句使用的说明一[3-10整理] [收藏主题] 转到:  
科汛官方 当前离线

47268

主题

145

广播

405

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

用户积分:101604 分
登录次数:7935 次
注册时间:2006/12/7
最后登录:2023/12/14
科汛官方 发表于:2009/3/10 12:17:00   | 只看该作者 查看该作者主题 楼主 

经常在坛子里看到一些用户对sql标签的条件使用不够了解,导致得不到预期的效果.今天给大家讲一下使用sql标签条件里,需要注意的一些细节问题.

 

标签格式:

 

{$IF(condition||out1||out2)} 

 

 

标签说明:当满足 condition 条件,输出out1,否则输出 out2,类似c,c#等语言里的三元运算符a?b:c,需要注意的时每个条件对都必须包含两个||
condition可以是任何支持asp的条件运行符(如=,〉,〈,〉=,〈=,〈〉等)和函数(如datediff,isdate,isarray等)

 

注意点说明:

  1. 这个标签只能应用于sql标签的循环体中,且不能嵌套,但可以平行出现多对使用
  2. 标签的condition部分必须是严格按照asp的语法书写
    举例说明
      a.如我们希望字段intro(varchar类型)为空时,输出"---",不为空时,原文输出. 
       正确写法1:
              "{$Field(intro,Text,0,...,0,)}"=""
       正确写法2:
              "{$Field(intro,Text,0,...,0,)}"=""

       错误写法1:
             {$Field(intro,Text,0,...,0,)}=""
       错误写法2:
          {$Field(intro,Text,0,...,0,)}="空"

    关键在于上面加色的双引号是必须的,不能少
    比如intro字段为 "kesioncms",那么我们可以将上面理解为:
      正确写法1:
              "kesioncms"=""
       正确写法2:
              "kesioncms"=""

       错误写法1: 
             kesioncms=""
       错误写法2: 
           kesioncms="空"
    这样就可以清楚看出,1,2种是正确写法,后面的都是错误的,少了双引号
    再比如intro字段为空时,即没有内容.那么我们可以将上面理解为:

    正确写法1:
              "空"=""
       正确写法2:
              ""=""

       错误写法1: 
             空=""
       错误写法2: 
           ="空"

    b.如我们希望最最近三天内发布的文章,输出new标签,日期字段为AddDate(datetime类型). 
      正确写法1: 
              {$IF(datediff("d","{$Field(adddate,Date,YYYY-MM-DD)}",now)<3||<font color=red><b>new</b></font>||<font color="#cccccc">{$Field(adddate,Date,MM-DD)}</font>)}
    错误写法: 
              {$IF(datediff("d",{$Field(adddate,Date,YYYY-MM-DD)},now)<3||<font color=red><b>new</b></font>||<font color="#cccccc">{$Field(adddate,Date,MM-DD)}</font>)}
    关键还是上面的双引号不能少.假设我们这里的adddate值为2009-3-10号,那么以上就转变为

    正确:datediff("d","2009-3-10",now)<3     ---符合asp语法
    错误:datediff("d",2009-3-10,now)<3        ---不符合asp语法


    经过以上说明,我想你也大概明白了,为什么经常会得不到预期的效果了,特别应该注意的就是第二点条件部分的写法,比较有讲究,如果是文本型字段,我们往往可以加一个"空"字替代,如下图


    此主题相关图片如下:未命名.jpg
    未命名.jpg



       

 


 

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

78

主题

0

广播

0

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

用户积分:33 分
登录次数:9 次
注册时间:2010/6/4
最后登录:2012/5/22
wh1218011 发表于:2010/6/5 15:37:00   | 只看该作者 查看该作者主题 沙发 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
huiru1221 当前离线

50

主题

0

广播

0

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

用户积分:20 分
登录次数:3 次
注册时间:2010/2/12
最后登录:2010/4/13
huiru1221 发表于:2010/2/19 9:20:00   | 只看该作者 查看该作者主题 藤椅 
科汛在线商城系统(NET)
曹县信息港水浒故里门户网站推广曹县信息 曹县曹县门户网站,树立曹县形象曹县信息港,开拓曹县互联网天地,免费广告投放!
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
hejun 当前离线

116

主题

0

广播

0

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

用户积分:114 分
登录次数:51 次
注册时间:2009/12/16
最后登录:2011/4/27
hejun 发表于:2010/1/8 17:03:00   | 只看该作者 查看该作者主题 板凳 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
rong0785 当前离线

42

主题

0

广播

0

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

用户积分:287 分
登录次数:18 次
注册时间:2009/9/19
最后登录:2009/12/14
rong0785 发表于:2009/11/24 16:49:00   | 只看该作者 查看该作者主题 报纸 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
dsj123 当前离线

65

主题

0

广播

0

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

用户积分:521 分
登录次数:6 次
注册时间:2009/3/12
最后登录:2010/1/17
dsj123 发表于:2009/11/19 13:05:00   | 只看该作者 查看该作者主题 地板 
科汛在线网校系统
呵呵,谢谢分享这么好的东西了。。。
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
blueicemei 当前离线

32

主题

0

广播

0

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

用户积分:165 分
登录次数:13 次
注册时间:2009/10/13
最后登录:2010/1/18
blueicemei 发表于:2009/10/18 1:52:00   | 只看该作者 查看该作者主题 7楼 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
pulijiang 当前离线

49

主题

0

广播

0

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

用户积分:205 分
登录次数:3 次
注册时间:2009/10/13
最后登录:2009/10/28
pulijiang 发表于:2009/10/13 11:12:00   | 只看该作者 查看该作者主题 8楼 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
野狼之音 当前离线

3

主题

0

广播

0

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

用户积分:42 分
登录次数:1 次
注册时间:2009/9/20
最后登录:2009/9/20
野狼之音 发表于:2009/9/20 19:55:00   | 只看该作者 查看该作者主题 9楼 
科汛在线商城系统(NET)
问一问题啊  我在文章系统中新建了一个栏目是图库 全用来显示图片的  又在模板里面新建了一个list页面用来显示图库的图片的  但是不能分页  我建的标签是显示20张图片  多了就显示不了了 没有分页 想用sql建一个分页但是又看不懂里面的东西 那个sql标签看起来好复杂哦 要怎么弄分页的啊 小弟是个菜鸟 才刚刚用这个系统 有会的能不能加我qq帮我弄下 多谢了
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
sunshuai8706 当前离线

56

主题

0

广播

0

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

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