我正在尝试将一小块复杂的coldfusion结构转换为查询以在我的页面中使用:
我有以下代码,我尝试了一些转换
<cfset l = "Pame=Program A&Co_Test=0&Programs2Product_ID=1
&Product_Type_ID=1&Clients2Product_ID=422&Program_ID=1
&S_Name=MASQW&Product_Template=BGTt&Name=MMMLD
">
<cfset q = queryNew("")>
<cfloop list="Pame,Co_Test,Programs2Product_ID,Product_Type_ID,
Clients2Product_ID,Program_ID,S_Name,Product_Template,Name" index="k">
<cfset queryAddColumn(q, "#k#", listToArray(listlast(l,"="),"&"))>
</cfloop>
<cfdump var="#q#">
Run Code Online (Sandbox Code Playgroud)
它转换为查询,但对于所有列,它只是添加最后一个vakue MMMLD
任何人都可以检查我在这里做错了什么
您的问题是您正在使用listLast()变量l,即整个字符串,因此它总是会根据分隔符(在本例中为MMMLD)提供最后一个值.我让这个适合我:
<cfset q = queryNew("")>
<cfset l = "Pame=Program A&Co_Test=0&Programs2Product_ID=1
&Product_Type_ID=1&Clients2Product_ID=422&Program_ID=1
&S_Name=MASQW&Product_Template=BGTt&Name=MMMLD
">
<cfset keyValueArray = listToArray(l, '&')>
<cfloop array="#keyValueArray#" index="i">
<cfset keyValuePair = listToArray(i, '=')>
<cfif arrayLen(keyValuePair) EQ 2>
<cfset queryAddColumn(q, keyValuePair[1], [keyValuePair[2]])>
</cfif>
</cfloop>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |