程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> sql 標簽嵌套調用實現循環顯示欄目文章標簽

sql 標簽嵌套調用實現循環顯示欄目文章標簽

編輯:關於SqlServer


      一段時間沒有給大家講高級教程了,今天剛好商業區的管理員說有用戶需要這方面的需求,問我如何實現!其實也不難.我就給大家做個教程吧!
   用過科汛系統函數標簽的"循環顯示欄目文章標簽"的用戶可能就知道這個標簽有一定的局限性,樣式無法自己控制.往往無法滿足自己的需求.現在我就教大家用sql標簽來實現類似效果的制作方法

  正如標題所說需要sql標簽嵌套調用,但考慮到系統生成速度方面原因,默認情況下科汛的sql標簽是不支持嵌套調用的,那我們就對科汛的代碼進行小手術.請跟我來吧

第一步:對代碼進行小手術

  用dw等編輯工具打開KS_Cls/Kesion.Label.CommonCls.ASP文件,並找到約112左右的如下代碼

  Dim DCls:Set Dcls=New DIYCls
   Content=DCls.ReplaceUserFunctionLabel(Content)
   Set DCls=nothing
   ReplaceAllLabel =Content

   ReplaceAllLabel=DCls.ReplaceUserFunctionLabel(Content)
我們改成以下代碼

    Dim DCls:Set Dcls=New DIYCls
   Content=DCls.ReplaceUserFunctionLabel(Content)

相信有點ASP代碼基礎的用戶都可以看得明白,就是當模板文件裡包括{SQL_開頭時,就再一次執行sql標簽替換操作.正如之前說的,考慮到生成速度方面原因.如果模板裡不包含{SQL_就不再替換了,所以這裡的If判斷對系統的性能有一定的作用.因為我們並不要求所有標簽都要嵌套的.

第二步:分析實現

制作被嵌套的文章列表(查詢KS_Article表):

sql標簽名稱:文章循環體

sql參數: 欄目ID

sql語句:select top 10 id,title,adddate from ks_article where tid='{$Param(0)}' order by id desc

sql循環體:

[loop=10]
<li><a href="{$Field(id,GetInfoUrl,1,1)}" target="_blank">{$FIEld(title,Text,0,...,0,)}</a></li>
[/loop]

制作欄目列表標簽(查詢KS_Class欄目表)

sql標簽名稱:循環欄目列表

sql語句:select top 10 id,FolderName from ks_class where tn='{$CurrClassID}' order by folderOrder

sql循環體:

<table border="0" width="100%">
[loop=10]
<tr>
 <td>{$FIEld(foldername,Text,0,...,0,)}</td>
</tr>
<tr>
 <td sytle="border:1px solid #cccccc">
 {SQL_文章循環體({$FIEld(id,GetInfoUrl,100,2)})}
</td>
</tr>
[/loop]
</table>

tips:上面紅色就是插入上面制作的文章列表標簽,參數{$FIEld(id,GetInfoUrl,100,2)}表示生成欄目ID號

第三步:模板調用

{SQL_循環欄目列表()}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved