我有几个表1联系人和多个数据
Contacts有一个ID字段和一个Name字段,data有一个名为Contacts的字段(以及其他字段)。
例如联系人

ID - Name
1 - James
2 - Mark
3 - Doug

例如,数据
ID - Contacts - Data
1 - 1,3 - more data
2 - 2 - more data
3 - 2,3,1 - more data

显然,逗号分隔的数字链接到联系人表中的几个人。如何从逗号分隔的列表转换为人名。标准的左连接不起作用。
有没有一种方法可以在原始查询中完成,或者需要在原始while循环中的foreach中添加一段时间?例如(以下也不起作用,但就我所知):
//original query while {
        $contacts_array = array(implode(",",$db['Contacts']));
        foreach ($contacts_array as $contacts_id)
        {
            $contacts_query = "SELECT Name FROM data_contacts WHERE ID='$contacts_id'";
            $contacts_result = mysql_query ($contacts_query);
            $contactslist="";
            while($contacts=mysql_fetch_array($contacts_result)){
                $contactslist .= $contacts['Name'].", ";
            }
        }
echo $contactslist;
}

最佳答案

我总是用单个行存储多对多关系,而不是用逗号分隔的值:

ID - Contacts
1 - 1
1 - 3
2 - 2
3 - 2
3 - 3
3 - 1

关于php - 左加入一列与数组在PHP/MySQL的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11108960/

10-11 02:22