2011-06-18 62 views
-2

我有2個表問關於MySQL表

usrfrnd_table

user_id friend_id 
__________________ 
1   1 

2   5 

3   1 

2   1 

和usr_table

id fullname 
________________ 

1 John Doe 

2 George Cann 
... 

如何從表usr_table與循環呼應例如ID 2所有的朋友? 試過這段代碼。但不工作

$stmt = "SELECT fullname FROM usr_table INNER JOIN usrfrnd_table ON usr_table.id=usrfrnd_table.friend_id WHERE usrfrnd_table.user_id='$id'"; 
    $result=$db->query($stmt); 
    foreach($result as $rec){ 
     echo "<li><a href=user.php?id=".$rec['id']."'>". $rec['fullname'] . "</a></li>"; 
    } 
+0

userfrnd_table是單向還是雙向的?爲什麼用戶1是他自己的朋友? :) –

+0

抱歉的錯誤。這是uni –

+0

爲什麼你把我的問題減去聲譽?我的問題有什麼問題? –

回答

2

試試這個:

$stmt = "SELECT id, fullname FROM usr_table INNER JOIN usrfrnd_table ON usr_table.id=usrfrnd_table.friend_id WHERE usrfrnd_table.user_id=2"; 
$result=mysql_query($stmt); 
foreach($result as $rec){ 
    echo $rec['fullname'] . "<br>"; 
} 
+0

該連接看起來像它會返回正在查看的用戶的用戶名(id = 2)而不是他的朋友的名字 – Gryphius

+0

正確的你是...有錯誤的加入那裏。很好,趕上,謝謝。 –

+1

我需要他的朋友的全名 –

1

查詢會是這個樣子:

select fullname from usr_table inner join usrfrnd_table ON (usr_table.id = usrfrnd_table.friend_id) WHERE usrfrnd_table.user_id = 2; 
1

如果我理解正確的話,你是想顯示所有好友的用戶2.你需要做一個內部連接。

SELECT usr_table.fullname FROM usrfrnd_table, usr_table WHERE (usrfrnd_table.friend_id = usr_table.id) AND (usrfrnd_table.user_id = 2)

+0

此聲明將返回所有用戶的所有朋友,您必須添加僅選擇用戶2的朋友的子句。 – Gryphius

+1

那麼如何一個接一個地回顯他們呢? mysql_fetch_array? –

+0

看到AJ的例子,現在應該做你想做的事 – Gryphius