经典ASP - 在每个循环中通过投票对文件进行排序

时间:2013-06-06 06:47:54

标签: asp-classic

我需要做的是标记具有最高投票数的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个选票的文件名?

1 个答案:

答案 0 :(得分: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
''
%>