2

ColdFusionでResults.columnnameを使用せずにすべての結果を印刷する方法

例:-

私は持っています<cfquery name="getProductId"> select productId from product </cfquery>

製品テーブルには、product_nameとProduct_idの2つの列があります。

getProductId.product_namegetProductId.Product_idを使用せずにそれらを印刷するにはどうすればよいですか。

ありがとう、

4

4 に答える 4

6

何を達成しようとしていますか?次のような列名がわからないクエリに基づいて、クエリ結果を計算的に出力する方法を探している場合...

<cfquery name="queryName" ...>
    select * from product
</cfquery>

queryName.ColumnList...次に、すべての列名のコンマ区切りリストを返す変数を使用できます。その後、このリストを繰り返し処理し、必要に応じて出力できます。

たとえば、単純な HTML テーブル出力を取得するには、次のようにします。

<table border=1>
    <cfloop from="0" to="#queryName.RecordCount#" index="row">
        <cfif row eq 0>
            <tr>
                <cfloop list="#queryName.ColumnList#" index="column" delimiters=",">
                    <th><cfoutput>#column#</cfoutput></th>  
                </cfloop>
            </tr>
        <cfelse>
            <tr>
                <cfloop list="#queryName.ColumnList#" index="column" delimiters=",">
                    <td><cfoutput>#queryName[column][row]#</cfoutput></td>
                </cfloop>
            </tr>
    </cfif>
    </cfloop>
</table>

これが意図したものではない場合は、申し訳ありません。

于 2009-10-29T11:21:29.507 に答える
2

HTML テーブルにクエリしますか? そのためのタグがあります!

<CFTable>すごい!

http://www.cfquickdocs.com/cf8/#cftable :)

于 2009-10-29T21:36:41.907 に答える
2

「列名を使用せずに」という意味を明確にしていただけますか?

getProductId.ColumnList属性を使用したい場合がありますか?

クエリを配列に変換する私の古いコードの小さな例 (詳細を少し削除し、var 名を変更しましたが、アイデアを示しています):

    <cfset arrRecordSet = ArrayNew(1)>

    <cfloop query="qGetSomething">
        <cfset record = StructNew()>
        <cfloop list="#qGetSomething.ColumnList#" index="field">
            <cfset record[field] = qGetSomething[field][qGetSomething.CurrentRow]>
        </cfloop>
        <cfset ArrayAppend(arrRecordSet,record)>
    </cfloop>

EDIT:コメントで正しく認識されているように、行変数を取り除くための強化された例。

于 2009-10-29T11:16:48.093 に答える
1

To expand on my comment to Chris's response, here's the simpler version with the missing thead/tbody tags added:

<cfoutput>
    <table>
        <thead>
            <tr>
                <cfloop index="ColName" list="#MyQuery.ColumnList#">
                    <th>#ColName#</th>
                </cfloop>
            </tr>
        </thead>
        <tbody>
            <cfloop query="MyQuery">
                <tr>
                    <cfloop index="ColName" list="#MyQuery.ColumnList#">
                        <td>#MyQuery[ColName][MyQuery.CurrentRow]#</td>
                    </cfloop>
                </tr>
            </floop>
        </tbody>
    </table>
</cfoutput>
于 2009-10-29T13:24:22.827 に答える