Asp classic 函数生成8个字符长的单词的随机列表

Asp classic 函数生成8个字符长的单词的随机列表,asp-classic,Asp Classic,我使用的是经典的ASP,有一个MySQL表(“j_un2”),里面有6318个随机单词,那里的总数永远不会改变。表中的ID是无间隙的 我需要生成由2个单词组成的5个随机连接字符串的列表,其中字符串的总长度为8个字符 几天前,我已经通过以下途径获得了一些非常有用的帮助: 根据我收到的帮助,我编写了这个简单的函数来生成8个字符的随机单词组合: <% Function f1(str) found = "no" do while found <> "yes"

我使用的是经典的ASP,有一个MySQL表(“j_un2”),里面有6318个随机单词,那里的总数永远不会改变。表中的ID是无间隙的

我需要生成由2个单词组成的5个随机连接字符串的列表,其中字符串的总长度为8个字符

几天前,我已经通过以下途径获得了一些非常有用的帮助:

根据我收到的帮助,我编写了这个简单的函数来生成8个字符的随机单词组合:

<%
Function f1(str)
    found = "no"
    do while found <> "yes"
        rand1 = Int((Rnd * 6138) + 1)
        rand2 = Int((Rnd * 6138) + 1)
        SQL = "SELECT CONCAT(w1.fld_un, w2.fld_un) word FROM j_un2 w1 , j_un2 w2 WHERE w1.fld_id = "&rand1&" AND w2.fld_id = "&rand2&""
        set pRS = oConn.Execute(SQL)
        word = pRS("word")
        if len(word) = str then 
            found = "yes"
            f1 = word
        end if
    Loop
End Function

for i = 1 to 5
    bob = f1(8)
    response.write bob & "<br />"
next
%>
如果我刷新页面,它会以相同的顺序生成单词。我知道表中有数百个单词,它们将组合成一个8个字符长的字符串,所以并不是数据库中没有足够的单词

如果我这样做,例如:

for i = 1 to 5
    bob = f1(8)
    response.write bob & "<br />"
next

for i = 1 to 5
    bob = f1(8)
    response.write bob & "<br />"
next

for i = 1 to 5
    bob = f1(8)
    response.write bob & "<br />"
next

for i = 1 to 5
    bob = f1(8)
    response.write bob & "<br />"
next
i=1到5的

bob=f1(8)
response.write bob&“
” 下一个 对于i=1到5 bob=f1(8) response.write bob&“
” 下一个 对于i=1到5 bob=f1(8) response.write bob&“
” 下一个 对于i=1到5 bob=f1(8) response.write bob&“
” 下一个
然后它将生成20个8字符长的随机组合,但同样,这20个组合的顺序始终相同

我不是一个非常聪明的程序员——我是否遗漏了一些东西,因为我不知道如何在每次刷新页面时获得一个完全随机的列表。

您需要使用“随机化”每次为您的ID获取不同的数字

Dim max,min
max=100
min=1
Randomize
response.write(Int((max-min+1)*Rnd+min))
有关它的详细信息

Randomize()
使用系统时间为随机数生成器设定种子,因此每页只能调用一次。
Dim max,min
max=100
min=1
Randomize
response.write(Int((max-min+1)*Rnd+min))