coldfusion struct语法和查询数据

raj*_*504 0 coldfusion struct

到目前为止,我几乎只使用coldfusion进行查询,从不需要结构或任何对象表示法.我正在处理的服务器没有打开调试只是一个"500内部服务器错误."所以我无法看到为什么我的代码不工作,可悲的是我没有能力打开调试.

通过试验和错误注释阻止我已经注意到错误发生在我的结构行中,并将结构添加到我的数组.从我读过的CF文档中我没有看到任何语法错误,但是如果我有任何错误的逻辑或可能出错的话,任何帮助都会非常感激.

 <cfset dataArray = []>
 <cfset i = 0>
 <cfloop query="getMembers">
        <cfquery name="getmaps" datasource=“a" dbtype="odbc">
        SELECT       member_id, mlong, mlat
        FROM         maps 
        WHERE       member_id = '#getMembers.MemberID#'
        </cfquery>
        <cfif getmaps.recordcount eq 1>
            <!--- temp structure to insert into array --->
            <cfset dataTemp = {
                memberID = getMemebers.memberID, 
                name = getMemebers.MemberName, 
                long = getmaps.mlong, 
                lat = getmaps.mlat 
            }>
            <cfset dataArray[i] = dataTemp>
            <cfset i++>
        </cfif>
    </cfloop>
Run Code Online (Sandbox Code Playgroud)

Jak*_*sel 5

除了Shawn的评论之外,我相信你在将数组索引设置为0时会有问题,而不是1. Coldfusion将数组索引从1开始.

编辑更多建议:

<cfset dataArray = []>
 <cfloop query="getMembers">
        <!--- Not usually a good idea to query each time through a loop - should be able to do a single query outside it --->
        <cfquery name="getmaps" datasource=“a" dbtype="odbc">
        SELECT       member_id, mlong, mlat
        FROM         maps 
        WHERE       member_id = <cfqueryparam value='#getMembers.MemberID#' cfsqltype="cf_sql_varchar"><!--- assuming varchar since you had quotes around it --->
        </cfquery>
        <cfif getmaps.recordcount eq 1>
            <!--- temp structure to insert into array --->
            <cfset dataTemp = {
                memberID = getMembers.memberID, 
                name = getMembers.MemberName, 
                long = getmaps.mlong, 
                lat = getmaps.mlat 
            }>
            <cfset ArrayAppend(dataArray,dataTemp)>
        </cfif>
</cfloop>
Run Code Online (Sandbox Code Playgroud)