2010-03-17 75 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#並且應該有效。