2014-03-04 144 views
0

我试图从一个mysql数据库获取数据......但我只需要一个数组指定的结果...例如我有一个数据库,它填充了成员数据:用户名,电子邮件等...和另一个表,我存储每个成员他们的联系人列表像...所以我正在寻找一种方式来显示成员他们的联系人列表...我只是不清楚什么是最好的方式.. 。任何提示,欢迎...例如:从MySQL获取阵列特定数据

$result = mysql_query("select contact_id from member_contact_list"); 

$contacts = array(); 

while ($row = mysql_fetch_array($result)){ 
    $c_array[] = $row[ 'username' ]; 
} 

$c_array = implode(',', $existing_users); 

$sql = "SELECT * FROM members WHERE id="c_array[]""; 

它有点难以解释......我希望有人得到我的意思。

回答

2

IN将帮助您喜欢

$sql = "SELECT * FROM members WHERE id IN (".$c_array.")"; 

考虑到$c_array是由member id,崩盘的字符串。

0

使用In

$sql = "SELECT * FROM members WHERE id in (".$c_array.")";

0

使用JOIN你可以得到一个给定成员的联系人列表:

SELECT * FROM members AS m 
LEFT JOIN 
contacts AS c ON (m.user_id = c.user_id) 
WHERE m.user_id = 1; 

JOINS是有效的,然后子查询

0

奇怪的程序。

$result = mysql_query("select contact_id from member_contact_list"); 

$contacts = array(); //**not used anywhere else in the given code** 

while ($row = mysql_fetch_array($result)){ 
    $c_array[] = $row[ 'username' ]; //**was that supposed to be $contacts?** 
    //** also was this the right version: $contacts = $row['id']; ??? **// 
} 

$c_array = implode(',', $existing_users); 
//** where was $existing_users defined? Was that supposed to be $contacts, too?** 

$sql = "SELECT * FROM members WHERE id="c_array[]""; 
//** correct version is indeed with the clause "WHERE id IN (".$c_array.")" **; 

//** last but not least, the $c_array seems to be the collection of user names, not user ids. **//