2

でクエリをループしようとしていますcfscript。私はそれを持っていると思いますが、クエリは無限にループします。

誰かが次の何が悪いのか教えてもらえますか?

<cfscript>
    // loop single msg
    variables.allRows = current_message.recordcount;
    for ( variables.intRow = 1 ; variables.allRows LTE variables.intRow ; variables.intRow = variables.intRow + 1 ){
        variables.msg_id_viewed = current_message[ "com_msg_id" ][ variables.intRow ];
        variables.msg_app_alias = current_message[ "com_app_alias" ][variables.intRow];
        variables.msg_img_ext = current_message[ "com_img" ][ variables.intRow ];
        }
</cfscript>

クエリcurrent_messageは単一のレコードを返すため、これは1回だけループする必要があります。

手伝ってくれてありがとう!

4

1 に答える 1

11

あなたは間違った方法であなたの状態を持っています。

そのはず:

variables.intRow LTE variables.allRows 

current_message実際には複数の行があると思います。あなたは実際にチェックしましたか、それともそれがあなたが期待しているものであるという仮定で単に実行しましたか?variables.allRows LTE variables.intRow私には、に評価しているように見えるので、最初に開始したときに1より大きいfalseことを示唆しています。variables.allRows

これに関して:

クエリcurrent_messageは単一のレコードを返すため、これは1回だけループする必要があります。

行が1つしかない場合(これが事実であることがわかっている場合)、なぜループしているのですか?

そうは言っても、ColdFusionのどのバージョンを使用していますか?CF10では、for / in構文を使用してレコードセットをループできます。したがって、次のようになります。

for (row in recordset){
    // row is a struct keyed on each column name, the values being the value for that column/row
}
于 2012-10-06T12:46:45.273 に答える