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

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

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

0 2009/7/29 15:49:16

經(jīng)常在壇子里看到一些用戶對(duì)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,需要注意的時(shí)每個(gè)條件對(duì)都必須包含兩個(gè)||
condition可以是任何支持asp的條件運(yùn)行符(如=,〉,〈,〉=,〈=,〈〉等)和函數(shù)(如datediff,isdate,isarray等)

 

注意點(diǎn)說明:

  1. 這個(gè)標(biāo)簽只能應(yīng)用于sql標(biāo)簽的循環(huán)體中,且不能嵌套,但可以平行出現(xiàn)多對(duì)使用
  2. 標(biāo)簽的condition部分必須是嚴(yán)格按照asp的語法書寫
    舉例說明
      a.如我們希望字段intro(varchar類型)為空時(shí),輸出"---",不為空時(shí),原文輸出. 
       正確寫法1:
              "{$Field(intro,Text,0,...,0,)}"=""
       正確寫法2:
              "{$Field(intro,Text,0,...,0,)}"=""

       錯(cuò)誤寫法1:
             {$Field(intro,Text,0,...,0,)}=""
       錯(cuò)誤寫法2:
          {$Field(intro,Text,0,...,0,)}="空"

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

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

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

       錯(cuò)誤寫法1: 
             空=""
       錯(cuò)誤寫法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>)}
    錯(cuò)誤寫法: 
              {$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)鍵還是上面的雙引號(hào)不能少.假設(shè)我們這里的adddate值為2009-3-10號(hào),那么以上就轉(zhuǎn)變?yōu)?br />
    正確:datediff("d","2009-3-10",now)<3     ---符合asp語法
    錯(cuò)誤:datediff("d",2009-3-10,now)<3        ---不符合asp語法


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


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

100%