经常在坛子里看到一些用户对sql标签的条件使用不敷相识,导致得不到预期的效果.今天给各人讲一下使用sql标签条件里,需要注重的一些细节问题.
标署名堂:
{$IF(condition||out1||out2)}
标签说明:当知足 condition 条件,输出out1,否则输出 out2,类似c,c#等语言里的三元运算符a?b:c,需要注重的时每个条件对都必需包括两个||
condition可以是任何支持asp的条件运行符(如=,〉,〈,〉=,〈=,〈〉等)和函数(如datediff,isdate,isarray等)
注重点说明:
- 这个标签只能应用于sql标签的循环体中,且不可嵌套,但可以平行泛起多对使用
- 标签的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
