2016-11-07 6 views
0

У меня возникли трудности с использованием ListAppend.ColdFusion ListAppend

У меня есть данные из таблицы, и это мой код.

<cfquery name="getData" datasource="test"> 
    select * from test; 
</cfquery> 

Теперь то, что я хочу сделать, это сделать все значения в имени столбца, который я назвал его как nm_column в список с помощью ListAppend.

<cfset dataList = ListAppend('', '#getData.nm_column#')> 
<cfoutput>#dataList#</cfoutput> 

Что это делает, что он показывает только 1-го значения nm_colum. Я понимаю, что мне не хватает части цикла, вот почему она показывает мне только первое значение. Итак, как мне его зацикливать и получить все значения?

Я пробовал это, но это не сработало.

<cfset dataList = ListAppend('', '<cfloop query="getData">#getData.nm_column#</cfloop>')> 

Может кто-нибудь, пожалуйста, научит меня правильно писать этот код?

ответ

5

В ColdFusion есть встроенная функция, которая сделает это за вас.

<cfset dataList = valueList(getData.nm_column)> 

Что касается вопроса с вашим кодом, первый аргумент listAppend «s список вы добавляете вещи. Кроме того, вы не можете вставлять такие теги ColdFusion. Код не будет компилироваться.

Если вы хотите перебрать что-то, чтобы добавить в список, это то, что вы бы сделали.

<cfset dataList = ''> 
<cfloop query="getData"> 
    <cfset dataList = listAppend(dataList, nm_column)> 
</cfloop> 

Это было бы ужасно для производительности, хотя строка неизменна. Если вам действительно нужно добавить элементы в список через губу, я бы создал массив, а затем использовал arrayToList для преобразования этого массива в список.

+0

Возможно, вам не нужно создавать массив. Функции массива работают с столбцами запросов. –

Смежные вопросы