在一个数组中添加两个不同批次的SQL行

时间:2015-12-21 17:56:03

标签: php sql arrays

我有一个从我的SQL数据库的两个不同表中获取信息的函数。

表1和获取的信息是10个用户的简要信息,包括以下信息:id,昵称,年龄

从第二个表中获取的信息基本上也是10个信息,但仅限于:id和activity。

如何在一个数组中返回一个具有BOTH信息的变量,如何检索特定信息,例如"获取id = 2&#34的用户名;从第一次获取AND"得到id = 2的第二个表的活动"?

我对更大的信息感到困惑(10批SQL行+一个数组中另外10批SQL行)

编辑:好的,现在我可以拿出一些代码。我有一个功能

public function fetch_matches($user_id){
  MySQL yada yada
  $firstfetch[]=each row of sql with a foreach loop
  return array($firstfetch, $secondfetch);
}

我将在一个数组中合并两个数组,并将其作为数组返回到returns_fetches $ db_fetches(如下所示):

public function returning_fetches($db_fetches){
foreach ( $matches_array as $match_id) {
                        $matches[] = $this->load_user_object($match_id);
                        $newactivity[] = $this-> ????????                       
                        }
}

问题出在returns_fetches函数中,我分割/访问我传递给第一个函数的数组的部分

$matches[] = $this->...????

问题是,如何为$ matches []访问$ FIRSTFETCH,如何为$ newactivity []数组访问$ secondfetch?

到目前为止,谢谢。

如果它更好我也可以创建一个新线程!

2 个答案:

答案 0 :(得分:0)

基本上,如果表之间没有强烈的id关系,则无法获取正确的数据集。

你应该拥有什么: 1表简介:id,昵称,年龄 2表活动:id,userId,activity

在这种情况下,您可以编写查询

SELECT 
`profile`.id, 
`profile`.nickname,
`profile`.age, 
`activity`.id as activityId,
`activity`.activity  
FROM `profile`
INNER JOIN `activity` on `profile`.id = `activity`.userId
WHERE id = 2

希望这会有所帮助

答案 1 :(得分:0)

好吧,我缩小了我的问题,并通过附加代码使其更具体,这样你就可以准确地看到我缺乏相应知识的地方;)

一个中间编码器可能会在心跳中知道访问我传递的数组的方法和方法,所以我会留在这里希望有人可以帮助新手

谢谢你们