ColdFusion基礎プログラミング



3-12データベースデータを表示する

ページ上でレコードセットを保持した後は、結果セットの値を<cfoutput> を使って表示できます。

<cfoutput> を使用する

クエリー変数に含まれるレコードセットの表示は、ローカル変数を表示する場合と似ています。動的な処理が含まれるコードを<CFOUTPUT>~ </CFOUTPUT> で囲み、個々の変数名の前後にシャープ記号(#)を追加します。以下のコードの動作を考えてみます。


<cfquery datasource="TRCF_dsn" name="qArtists">
SELECT ARTISTS.ARTISTID, ARTISTS.FIRSTNAME, ARTISTS.LASTNAME
FROM ARTISTS
ORDER BY LASTNAME
</cfquery>

このコードはエラーです!

<cfoutput>
#ARTISTID#
#FIRSTNAME#
#LASTNAME#
</cfoutput>

上記のコードでは動作しません。プログラム上でレコードセットを参照することを明示的に指定する必要があります。クエリー変数名の接頭辞を変数付けます。上記の例では「qArtists」がクエリー名です。

<cfoutput>
#qArtists.ARTISTID#
#qArtists.FIRSTNAME#
#qArtists.LASTNAME#
</cfoutput>

上記のコードの実行結果は以下のように表示されます。

4 Jeff Baclawski

この記述でエラーは解消しましたが、レコードセットの最初の1行しか表示されていません。


すべての行を表示する

戻ってきた行をすべて表示するためには、<cfoutput> タグにquery 属性を追加します。

<cfoutput query=""> の構文:
<cfoutput query=" クエリー名">
...
</cfoutput>

query 属性は<cfoutput> ~ </cfoutput> を反復ループに変換します。これにより、レコードセットに含まれる各行に対してそれぞれ1 回のループが繰り返し実行されます。
次のように、HTMLのタグを使用すれば、それぞれのループごとに改行を行った状態で画面に出力することができます。

<cfoutput query="qArtists">
#qArtists.ARTISTID#
#qArtists.FIRSTNAME#
#qArtists.LASTNAME# <br>
</cfoutput>

上記のコードの実行結果は以下のように表示されます。

4 Jeff Baclawski
12 Ellery Batchelor
13 Emma Buntel
10 Diane Demo
1 Aiden Donolan
14 Taylor Webb Frazier
5 Lori Johnson
3 Elicia Kim
11 Anthony Kunovic
7 Paul Trani
9 Viata Trenton
2 Austin Weber
6 Maxwell Wilson
8 Raquel Young