2014-03-04 143 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. **//