舟山闪爸电子技术有限公司

KesionCMS 幫助
幫助首頁 模板標(biāo)簽管理 - 問題匯總

1、SQL標(biāo)簽中條件語句使用的說明

0 2009/7/29 15:49:16

經(jīng)常在壇子里看到一些用戶對sql標(biāo)簽的條件使用不夠了解,導(dǎo)致得不到預(yù)期的效果.今天給大家講一下使用sql標(biāo)簽條件里,需要注意的一些細(xì)節(jié)問題.

 

標(biāo)簽格式:

 

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

 

 

標(biāo)簽說明:當(dāng)滿足 condition 條件,輸出out1,否則輸出 out2,類似c,c#等語言里的三元運(yùn)算符a?b:c,需要注意的時每個條件對都必須包含兩個||
condition可以是任何支持asp的條件運(yùn)行符(如=,〉,〈,〉=,〈=,〈〉等)和函數(shù)(如datediff,isdate,isarray等)

 

注意點說明:

  1. 這個標(biāo)簽只能應(yīng)用于sql標(biāo)簽的循環(huán)體中,且不能嵌套,但可以平行出現(xiàn)多對使用
  2. 標(biāo)簽的condition部分必須是嚴(yán)格按照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,)}="空"

    關(guān)鍵在于上面加色的雙引號是必須的,不能少
    比如intro字段為 "kesioncms",那么我們可以將上面理解為:
      正確寫法1:
              "kesioncms"=""
       正確寫法2:
              "kesioncms"=""

       錯誤寫法1: 
             kesioncms=""
       錯誤寫法2: 
           kesioncms="空"
    這樣就可以清楚看出,1,2種是正確寫法,后面的都是錯誤的,少了雙引號
    再比如intro字段為空時,即沒有內(nèi)容.那么我們可以將上面理解為:

    正確寫法1:
              "空"=""
       正確寫法2:
              ""=""

       錯誤寫法1: 
             空=""
       錯誤寫法2: 
           ="空"

    b.如我們希望最最近三天內(nèi)發(fā)布的文章,輸出new標(biāo)簽,日期字段為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>)}
    關(guān)鍵還是上面的雙引號不能少.假設(shè)我們這里的adddate值為2009-3-10號,那么以上就轉(zhuǎn)變?yōu)?br />
    正確:datediff("d","2009-3-10",now)<3     ---符合asp語法
    錯誤:datediff("d",2009-3-10,now)<3        ---不符合asp語法


    經(jīng)過以上說明,我想你也大概明白了,為什么經(jīng)常會得不到預(yù)期的效果了,特別應(yīng)該注意的就是第二點條件部分的寫法,比較有講究,如果是文本型字段,我們往往可以加一個"空"字替代,如下圖


    1、SQL標(biāo)簽中條件語句使用的說明 第 1 張此主題相關(guān)圖片如下:未命名.jpg
    按此在新窗口瀏覽圖片

100%