-1

我需要做的是标记具有最高投票数的 3 个文件的输出,问题是这些文件没有在数据库中列出,但投票是。

因此,目前,该脚本会遍历特定目录中的文件并打印出它们的文件名,并使用以下脚本打印出该文件投票的内容。

Set fileSystem = CreateObject("scripting.filesystemobject")
set objFolder = fileSystem.GetFolder(strFolder)

For Each objFile in objFolder.Files
    Response.Write objFile.Name
Next

这工作得很好而且花花公子我还有另一段代码使用 SQL 来获取文件名投票计数

SELECT count(*) AS total FROM votes WHERE filename=objFile.Name

如果我把它放在 For Each 循环中,它会打印出文件名的投票。

这是我遇到问题的地方,如果我在该文件夹中有 10 个文件名,我如何将第 1、第 2 和第 3 回显到具有前 3 票的文件名?

4

1 回答 1

1

我首先阅读了这个问题,但在评论中您提供了重要的进一步信息。尝试在您的问题中提供所有信息,否则必须通读所有评论。

无论如何,这将是一个解决方案吗?通常,您从当前文件夹中读取所有文件名并将它们放在逗号分隔的字符串变量中。然后在您的 SQL 中使用该变量。

<%
Set fileSystem = server.createobject("scripting.filesystemobject")
set objFolder = fileSystem.GetFolder(strFolder)

For Each objFile in objFolder.Files
    filter = filter & "'" & objFile.name & "'" & ", "
Next
' remove last comma
filter = left( filter, len(filter-2) )


sql = "SELECT top 3 filename FROM votes where filename in(" & filter & ") order by votes desc"

''execute sql and put results in recordset
''
%>
于 2013-06-06T07:53:28.977 回答