%@ Language="VBScript" Codepage=936 %> <% Dim keys, cls_id, key_ids, i Dim rs Set rs = Server.CreateObject("ADODB.Recordset") ' 得到类别 ID cls_id = Request.QueryString("class") If IsNull(cls_id) Then cls_id = 0 ElseIf cls_id = "" Then cls_id = 0 End If ' 分解关键字,并得到关键字 ID 字符串 keys = GetSubStrs( Replace(Request.QueryString("keyword"), ",", " ") ) key_ids = "0" For i = 1 To UBound(keys) key_ids = key_ids & "," & FindKeywordId(keys(i)) Next ' 从关系表中,按匹配最多关键字倒序 Dim sql If UBound(keys) > 0 Then If cls_id = 0 Then sql = "SELECT ARTICLE_ID FROM ARTICLE_KEYWORD WHERE (KEYWORD_ID IN (" & key_ids & ")) " & _ "GROUP BY ARTICLE_ID ORDER BY COUNT(*) DESC" Else sql = "SELECT ARTICLE_KEYWORD.ARTICLE_ID FROM ARTICLE_KEYWORD, ARTICLE_CLASS WHERE ARTICLE_KEYWORD.ARTICLE_ID = ARTICLE_CLASS.ARTICLE_ID AND " & _ "(ARTICLE_KEYWORD.KEYWORD_ID IN (" & key_ids & ")) AND (ARTICLE_CLASS.CLASS_ID = " & cls_id & ")" & _ "GROUP BY ARTICLE_KEYWORD.ARTICLE_ID ORDER BY COUNT(*) DESC" End If Else If cls_id = 0 Then sql = "SELECT ARTICLE_ID FROM ARTICLE ORDER BY ARTICLE_ID DESC" Else sql = "SELECT ARTICLE_ID FROM ARTICLE_CLASS WHERE (CLASS_ID = " & cls_id & ") ORDER BY ARTICLE_ID DESC" End If End If Dim article_ids article_ids = "0" rs.Open sql, conn, adOpenStatic, adLockReadOnly For i = 0 To 30 If rs.EOF Then Exit For End If article_ids = article_ids & "," & rs("ARTICLE_ID") rs.MoveNext Next rs.Close %>
| <%=i%>. )"><%=formatstr(rs("ARTICLE_TITLE"))%> |
| 没找到。 |