2010-03-17 76 views
2

根据LiveDocs for cfoutput in cf7CFOUTPUT循环上的一个文件名

当你指定查询属性,这个标签遍历查询行和由STARTROW指定的范围内的每一行产生输出和maxRows进行值

我试图抓住目录中文件的名称。我使用cfdirectory来获取查询记录,然后使用cfquery查询查询。我CFOUTPUT循环查询的行数,但每次都列出了相同的文件名:

输出: alt text http://img80.imageshack.us/img80/9294/onefile.png

代码:

<!-- list files in pass-fail directory --> 
    <cfset fileLocation = "c:\YouTubeUploader\pass-fail"> 
    <cfdirectory 
    action = "list" 
    directory = "#fileLocation#" 
    name = "files" 
    > <!-- master query --> 

    <cfdump var="#files#" label="files in pass-fail" > 
     <!-- displays the query record set returned from cfdirectory --> 

     <!-- detail query generates a new query result set - the names of the files --> 
     <cfquery dbtype="query" name="detail"> 
SELECT files.name 
FROM files 
     </cfquery> 

    <!-- output all file names --> 
    <cfoutput query="detail" startRow = "1" 
      maxRows = "5"> 
    #files.Name#<br> 
     </cfoutput> 

为什么CFOUTPUT停留在一个文件名?

回答

5

原因是由于cf在您的详细查询files.name中命名您的变量,因此cf认为您需要文件查询的名称值。更改您的详细信息的查询阅读:

SELECT name FROM files 

,然后改变你出阅读:

<cfoutput query="detail" startRow = "1" maxRows = "5">#detail.name#<br></cfoutput> 

,一切都应该冷静。

+0

将变量添加到变量(#detail.name#) - 范围不是必需的,但绝对是一种最佳实践并提高了性能 – Nate 2011-07-09 12:37:29

0

在您的cfoutput查询循环内更改#files.Name#到#detail.Name#并且应该有效。