2011-12-26 12 views
9

मेरे पास मेरे सीएफसी में एक प्रश्न है। फ़ंक्शन में एक साधारण क्वेरी होती है।कोल्डफ्यूजन में क्वेरी कॉलम के माध्यम से लूप कैसे करें

<cfquery name="qrySE" datasource=#mydatasource#> 
SELECT 
    NAMES,SALARY 
FROM tblTest 
</cfquery> 

मैं के रूप में ऐसी (क्षैतिज) मेरी resultset प्रदर्शित करना चाहते हैं:

 
NAME1 NAME2 NAME3 NAME4 
    10 20 45 62 

वहाँ पाश के लिए एक रास्ता मेरी क्वेरी का कॉलम के माध्यम से है और इस उद्देश्य के लिए एक आभासी क्वेरी बनाने के?

अगर किसी ने ऐसा किया है, तो कृपया मुझे बताएं।

उत्तर

6

आप अंतर्निहित query.columnList का उपयोग कर सकते हैं जो प्रत्येक क्वेरी के साथ वापस किया जाता है। (यह क्वेरी के मेटाडाटा है, RecordCount की तरह।)

आप कुछ इस तरह कर सकता है:

<table> 
    <cfloop list="#qrySE.columnList#" index="col"> 
    <tr> 
     <cfloop query="qrySE"> 
     <td>#qrySE[col][currentRow]#</td> 
     </cfloop> 
    </tr> 
    </cfloop> 
</table> 

जांची नहीं है, लेकिन है कि आप से पता चलना चाहिए।

10

बस अल एवरेट के समाधान को जोड़ना चाहता था कॉलम को वर्णमाला क्रम में वापस लौटाता है। आप स्तंभ नाम क्वेरी के रूप में एक ही क्रम में वापस पाने के लिए चाहते हैं, तो आप उपयोग कर सकते हैं:

ArrayToList(qrySE.getColumnNames()) 

मैं यहां पाया जो: http://www.richarddavies.us/archives/2009/07/cf_columnlist.php

आप के लिए उत्पादन प्रश्नों का एक समारोह बनाने के लिए इसका उपयोग कर सकते इस तरह की एक सारणी:

<cffunction name="displayQueryAsTable" output="true"> 
    <cfargument name="rawQueryObject" type="query" required="true"> 
    <table > 
    <tr> 
     <cfloop list="#ArrayToList(rawQueryObject.getColumnNames())#" index="col" > 
      <th>#col#</th> 
     </cfloop> 
    </tr> 
    <cfloop query="rawQueryObject"> 
     <tr> 
      <cfloop list="#ArrayToList(rawQueryObject.getColumnNames())#" index="col"> 
       <td>#rawQueryObject[col][currentrow]#</td> 
      </cfloop> 
     </tr> 
    </cfloop> 
    </table>   
</cffunction> 
संबंधित मुद्दे