对于wolfit的[Rndarticle 随机乱弹 1.0]的修改。修改了一下。代码还可以优化~小狼加油~~~
看了关键代码,其原理以及流程:查找随机ID,找到了取得URL找不到赋值首页。
以下为原始代码:
[CODE=vb]
        randomize
        RndNumber=cInt((MaxNum-MinNum+1)*rnd+MinNum)
        Set objRS=objConn.Execute(“SELECT [log_ID] FROM [blog_Article] WHERE ([log_ID]=” & RndNumber & “) AND ([log_Level]>1) order by [log_ID] desc”)
        If (Not objRS.bof) And (Not objRS.eof) Then
                        Set objArticle=New TArticle
                        If objArticle.LoadInfoByID(objRS(“log_ID”)) Then
                                strPrevious= objArticle.Url
                        End If
                        Set objArticle=Nothing
                        objRS.MoveNext
        else
      strPrevious= ZC_BLOG_HOST      ‘如果转到不该转的地方,则转向首页
        End If
        objRS.close
        Response.Redirect strPrevious
[/CODE]
参数设置中的[最大文章数]就要改为[最新文章ID]了,毕竟是通过ID查找的而不是objRS.Move x,不是吗?另外哪个objRS.MoveNext是不是不需要啊?呵呵。
第一种修改方法:
[CODE=vb]
Function GetArticleUrl()
        RndNumber=cInt((MaxNum-MinNum+1)*rnd+MinNum)
        Set objRS=objConn.Execute(“SELECT [log_ID] FROM [blog_Article] WHERE ([log_ID]=” & RndNumber & “) AND ([log_Level]>1) order by [log_ID] desc”)
        If (Not objRS.bof) And (Not objRS.eof) Then
                Set objArticle=New TArticle
                If objArticle.LoadInfoByID(objRS(“log_ID”)) Then
                        strPrevious = objArticle.Url 
                End If
                Set objArticle=Nothing
                objRS.close
        Else
                GetArticleUrl()        ‘如果没有该ID,则重新乱弹。
        End If
End Function
randomize
Call GetArticleUrl()
Response.Redirect strPrevious
[/CODE]
  看了自己发的帖子才想起来另一种方法。这样修改,参数设置中就应该写最大文章数(总数)而不是最新文章ID了。
第二种修改方法:
[CODE=vb]
        randomize
        RndNumber=cInt((MaxNum-MinNum+1)*rnd+MinNum)
Set objRS=objConn.Execute(“SELECT [log_ID] FROM [blog_Article] WHERE [log_Level]>1 order by [log_ID] desc”)
        If (Not objRS.bof) And (Not objRS.eof) Then
                        objRS.Move RndNumber – 1
                        Set objArticle=New TArticle
                        If objArticle.LoadInfoByID(objRS(“log_ID”)) Then
                                strPrevious= objArticle.Url
                        End If
                        Set objArticle=Nothing
        else
      strPrevious= ZC_BLOG_HOST      ‘如果转到不该转的地方,则转向首页
        End If
        objRS.close
        Response.Redirect strPrevious
[/CODE]
望小狼再接再厉~~~~~