Lista De Coldfusionapend
estou a ter dificuldades em tentar usar ListAppend
.
<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?
0
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