【问题标题】:Trying to create an array mixed with data from different mysql tables尝试创建一个混合了来自不同 mysql 表的数据的数组
【发布时间】:2019-10-14 07:38:39
【问题描述】:

基本上,我在 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]

【问题讨论】:

  • 请编辑您的问题以添加来自 CFC 的查询。
  • 发布您的查询。在 USER_ID 上加入两个表,然后循环创建数组。

标签: coldfusion cfml coldfusion-2016 coldfusion-2018


【解决方案1】:

听起来你正在做的是为每个表编写一个 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>

【讨论】:

  • 我可能会使用LEFT OUTER JOIN 而不是INNER JOIN 来获取没有任何帖子的用户。除非 OP 需要明确排除任何没有帖子的用户。但我完全同意。这是一个应该在查询而不是CF中解决的问题。
  • 是的,需要加入。尽管我会使用较新的选项将查询序列化为结构数组。比 CF11 等旧版本所需的手动方法要简单得多。 helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/…
  • 感谢我尝试使用数组方法!感谢回复
猜你喜欢
  • 2018-04-07
  • 2017-11-16
  • 2022-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-25
相关资源
最近更新 更多