2012-02-01 21 views
0

データベースからデータを取得して表示するために、このCFコードを記述しました。 (実際にテキストフィールドに値を設定する)問題:クエリから値を取得できませんが、レコードの数が正しく取得されています。ColdFusionクエリの各要素を表示する方法

cfloopを介してクエリから返された値にどのようにアクセスする必要がありますか?以下は私の仕事です。全体的に

<cfquery name="data_query" datasource="#dsn#"> 
    SELECT 
    id, 
    name 
    FROM learning 
</cfquery> 


<cfloop query=data_query"> 
    <li> 
    <div class="list_div clearfix"> 
     <input type="text" value="#URLDecode(name)#"> 
    </div> 
    </li> 
</cfloop> 
</cfquery> 
+0

あなたが持っている他の問題に加え、cfloopに二重引用符がありません( '')、コードの最後に余分な ''がありますスニペット。 – ale

+0

また、あなたが得るべきものに加えて、あなたが何を得ているのかを知ることは役に立ちます。 – ale

答えて

4

は、2つのオプションがありますあなたのコードは次のようになりますので は、クリーンなコードのために、私は2番目のオプションを好む:

<cfquery name="data_query" datasource="#dsn#"> 
    SELECT 
     id, 
     name 
    FROM learning 
</cfquery> 

<cfoutput query="data_query"> 
    <li> 
     <div class="list_div clearfix"> 
      #id#: <input type="text" value="#name#"> 
     </div> 
    </li> 
</cfoutput> 
1

あなたのロジックが...必要なわずか数誤字やマイナーな変更大丈夫だった..

これを試してみてください。

  1. ラップ<cfoutput />タグとVARS出力ライン:

    <cfoutput>#id#: <input type="text" value="#name#"></cfoutput>

  2. 使用<cfoutput query="data_query">ループの代わりに、<cfloop ...>

<cfquery name="data_query" datasource="#dsn#"> 
    SELECT 
     id, 
     name 
    FROM learning 
</cfquery> 

<cfloop query="data_query"> 
    <li> 
     <div class="list_div clearfix"> 
      #id#: <input type="text" value="#name#"> 
     </div> 
    </li> 
</cfloop> 
3

また、あなたが適切に「スコープ」クエリの列が出力する必要があるとき。これにより、将来的にコードを管理しやすくなります。 #data_query.name#がクエリに属していて、どこか他のコードによって設定されている文字列ではないことが常にわかります。また、ページのパフォーマンスを向上させます - 変数をスコープしない場合(これはクエリだけでなくすべての変数に適用されます)、CFはこの値で何かを見つけるまでさまざまなスコープをループします。スコープを設定すると、CFがループするのを防ぐことができます。

<cfquery name="data_query" datasource="#variables.dsn#"> 
    SELECT 
     id, 
     name 
    FROM learning 
</cfquery> 

<cfoutput query="data_query"> 
    <li> 
     <div class="list_div clearfix"> 
      #data_query.id#: <input type="text" value="#data_query.name#"> 
     </div> 
    </li> 
</cfoutput> 
1

そして、あなたはそれについて知らなかった場合:

<cfdump var="#data_query#"> 

OR

<cfdump var="#data_query#" abort> 

はあなたの美しいディスプレイを与えるだろうが、あなたのクエリから戻ってきた、または任意の変数または構造。

+1

これは答えよりもコメントです。 – ale

関連する問題