1

基本上我在 MySql 中有几个表,我试图创建一个与来自不同表的数据混合的数组。我正在使用 AJAX 从 CFC 获取数据。我尝试使用不同的 ajax 请求从不同的表中获取数据,但这使我的代码很长。

第一个示例表 - user_info_tb


USER_ID | FULL_NAME | 

----------------------------------------

  2             Jack

  3             John

  4             Jamie

第二个示例表 - post_tb


POST_ID | POSTED BY (USER_ID FROM THE FIRST TABLE)        |  TEXT |

----------------------------------------------------------------------------

  1              2                                            Hi

  2              3                                           Hello

  3              4                                         Good Morning

我怎样才能创建一个二维数组来得到这样的东西

[0]

 [1]-[Jack]

 [2]-[Hi]

[1]

 [1]-[John]

 [2]-[Hello]

[2]

 [1]-[Jamie]

 [2]-[Good Morning]
4

1 回答 1

2

听起来您正在做的是为每个表编写一个 ajax 请求和查询。您想要做的更有可能是创建连接查询和一个 ajax 请求。

<cffunction name="getUserPosts">
    <cfargument name="userID" required="true" />
    <cfquery name="local.result" datasource="#dsn#">
        SELECT u.User_ID, u.FullName, p.Post_ID, p.Text
        FROM user_info_tb u
            INNER JOIN post_tb p ON u.UserID = p.Posted_By
        WHERE u.User_ID = <cfqueryparam value="#arguments.userID#" />
    </cfquery>

    <cfreturn result />
</cffunction>

根据您的需要和 CF 版本,您可以只序列化

<cfoutput>#serializeJson(getUserPosts(form.userID))#</cfoutput>

或按照您所说的排列...

<cfset result = getUserPosts(form.userID) />
<cfset resultArray = [] />
<cfloop query="#result#">
    <cfset arrayAppend(resultArray, [result.FullName, result.Text]) />
</cfloop>
<cfoutput>#serializeJson(resultArray)#</cfoutput>
于 2019-10-14T15:10:47.017 回答