2011-12-26 11 views
9

Ho una query in un mio CFC. La funzione contiene una query semplice come tale.come passare da una colonna all'altra in ColdFusion

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

voglio mostrare il mio gruppo di risultati come tale (in orizzontale):

 
NAME1 NAME2 NAME3 NAME4 
    10 20 45 62 

C'è un modo per scorrere le colonne della mia query e creare una query virtuale per questo scopo?

Se qualcuno ha fatto questo, per favore fatemelo sapere.

risposta

6

È possibile utilizzare il numero di serie query.columnList che viene restituito con ogni query. (E 'metadati della query, come RecordCount.)

Si potrebbe fare qualcosa di simile:

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

non testato, ma che dovrebbe darvi l'idea.

10

Volevo solo aggiungere la soluzione di Al Everett restituisce le colonne in ordine alfabetico. Se si desidera ottenere i nomi delle colonne di nuovo nello stesso ordine come la query è possibile utilizzare:

ArrayToList(qrySE.getColumnNames()) 

che ho trovato qui: http://www.richarddavies.us/archives/2009/07/cf_columnlist.php

è possibile utilizzare questo per creare una funzione per le query in uscita a una tabella come questa:

<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> 
Problemi correlati