Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP处理SQL连接结果_Php_Mysql_Join - Fatal编程技术网

用PHP处理SQL连接结果

用PHP处理SQL连接结果,php,mysql,join,Php,Mysql,Join,我在使用从MySQL检索的PHP处理数据时遇到问题。这是表架构: parents: id | firstname | lastname children: id | firstname | lastname parent_child_link child_id | parent_id 我需要以这种方式保存数据,因为我想将多位家长链接到一个孩子。现在,当我想要检索一个孩子的时候,我想得到孩子的所有信息,还有家长id。这显然是一个连接查询,因此我使用: SELECT * FROM childr

我在使用从MySQL检索的PHP处理数据时遇到问题。这是表架构:

parents:
id | firstname | lastname

children:
id | firstname | lastname

parent_child_link
child_id | parent_id
我需要以这种方式保存数据,因为我想将多位家长链接到一个孩子。现在,当我想要检索一个孩子的时候,我想得到孩子的所有信息,还有家长id。这显然是一个连接查询,因此我使用:

SELECT *
FROM children c
JOIN parent_child_link l on l.child_id=c.id
WHERE c.id=1
现在,当这个id=1的孩子有两个父母(假设id为1和2),我得到的结果是:

id | firstname | lastname | parent_id
1    test        test       1
1    test        test       2
如果我用PHP处理这个问题,我会得到2个数组,但我希望它在一个数组中,例如

array(
    'firstname' => 'test', 
    'lastname' => test',
    'parents' => array(1, 2)
)
我怎样才能做到这一点


非常感谢

您可以使用GROUP_CONCAT返回逗号分隔的值数组


您可以使用GROUP\u CONCAT返回逗号分隔的值数组


您可以用php处理查询结果。在子id上创建一个索引的新数组,对于查询结果中的每个项,如果该项尚未存在,则将其添加到数组中。如果是,则将父id添加到其“parents”项。

您可以用php处理查询结果。在子id上创建一个索引的新数组,对于查询结果中的每个项,如果该项尚未存在,则将其添加到数组中。如果是,请将父id添加到其“parents”项。

我认为这将导致更多的工作。现在我只需要使用GROUP_CONCAT执行查询并分解父id。我认为这将导致更多的工作。现在我只需要使用GROUP_CONCAT执行查询并分解父id。