Ok, I see you ammended your initial code, so here's my response:
You are looping over a list of columns, and trying to evaluate each column as though it is a single element in a struct.
A query, however, is slightly different: it is accessed as a series of structs, which in turn, are arrays--of each row of data as they return from the query.
If you want to output all of the rows of data, without knowing the columns up front (or passing them in dynamically as you are implying in your code above), try this:
<cfoutput query="myQuery">
<cfloop list="#myQuery.ColumnList#" index="thisColumn">
#myQuery[thisColumn][myQuery.CurrentRow]#
</cfloop>
</cfoutput>
This will provide you with the output you need. The outer cfoutput with the query attribute will loop over all the rows of data you received. Then, for each row, you loop over the list of columns the query produces, and for each column, output the data, specifying the row via myQuery.CurrentRow, which iterates automatically for you via the outer output.
I'd also take a moment now to advocate that you try to stay away from loops within loops, and just output your values explicitly:
<cfoutput query="myQuery">
#company# #phone#
</cfoutput>
Using this syntax is slightly less expensive than the aforementioned loop within a loop.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…