Lista De Coldfusionapend

estou a ter dificuldades em tentar usar ListAppend.

Tenho dados de uma tabela e este é o meu código.

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

agora o que eu quero fazer é fazer com que todos os valores na coluna Nome que eu nomeei como nm_column em uma lista usando ListAppend.

<cfset dataList = ListAppend('', '#getData.nm_column#')>
<cfoutput>#dataList#</cfoutput>
O que isto faz é que só mostra o primeiro valor do nm_colum. Eu entendo que eu estou perdendo a parte do loop, é por isso que ele só me mostra apenas o primeiro valor. Então, como eu loop ele e obter todos os valores para aquilo?

Tentei isto, mas não resultou.

<cfset dataList = ListAppend('', '<cfloop query="getData">#getData.nm_column#</cfloop>')>
Alguém me pode ensinar a escrever o código correctamente?

Author: Matt Busche, 2016-11-07

1 answers

Há uma função incorporada na Coldfusão que fará isto por ti.
<cfset dataList = valueList(getData.nm_column)>

Quanto ao problema com o teu código, listAppend o primeiro argumento é a lista a que estás a adicionar coisas. Além disso, não se pode aninhar etiquetas de Coldfusão assim. O código não será compilado.

Se você quiser fazer um loop através de algo para adicionar a uma lista, isto é o que você faria.

<cfset dataList = ''>
<cfloop query="getData">
  <cfset dataList = listAppend(dataList, nm_column)>
</cfloop>
Isto seria terrível para o desempenho, uma vez que uma corda é imutável. Se você realmente precisava adicionar itens a uma lista através de um lip eu criaria um array e então usaria arrayToList para converter esse array para uma lista.
 5
Author: Matt Busche, 2016-11-07 04:33:46