兩件事:
if ($row['username_id'] == 1)
你應該把在你的SQL:
$result = mysql_query("SELECT username, friendname FROM tbusers INNER JOIN tbfriends ON tbusers.id = tbfriends.username_id where tbusers.id = ".$yourVariable);
在您的查詢,用戶和朋友的聯繫,只能是平等的。
現在,這樣的:
$count = $row['friendname'];//friendname is in friends
if ($row['id'] == $count)//id is in users
等於
if ($row['id'] == $row['friendname'])
這聽起來很簡單的錯誤。您將數字標識與名稱進行比較。而且,你的sql查詢已經回顧了用戶的所有朋友。在我在這裏展示的版本中,它僅檢索您感興趣的用戶的朋友。
最後,您打印(回顯)用戶的名稱,而不是朋友的名稱。在我看來,下面的代碼會做你想要什麼:
$result = mysql_query("SELECT friendname FROM tbfriends WHERE username_id = ".$yourUserVariable);
while($row = mysql_fetch_array($result))
{
echo $row['friendname']; // or better: echo $row['friendname'], '<br>';
}
編輯:評論後...
所以if ($row['id'] == $row['friendname'])
意味着用戶是自己的朋友。會發生嗎?
這段代碼應該打印出你想要的,朋友的名字。
/*
$result = mysql_query("
SELECT username as friend_name,
friendname as friend_id,
username_id as user_id
FROM tbusers INNER JOIN tbfriends ON tbusers.id = tbfriends.username_id
WHERE tbusers.id = ".$yourVariable);
*/
$result = mysql_query("
SELECT username as friend_name,
friendname as friend_id,
username_id as user_id
FROM tbusers INNER JOIN tbfriends ON tbusers.id = tbfriends.friendname
WHERE tbfriends.username_id = ".$yourVariable);
while($row = mysql_fetch_array($result))
{
echo $row['friend_name']; // or better: echo $row['friend_name'], '<br>';
}
對不起,我忘了提及FRIENDNAME也是一個ID。該人的信息在用戶表中。朋友表是用來檢查哪些人是朋友,所以你的解決方案工作,但我只得到了朋友的ID,這就是爲什麼我如果($ row ['id'] == $ row ['friendname']) – Drikus
我的頭疼了^^'!爲了可讀性,您應該將friendname重命名爲friend_id?以及。應將tbfriends.username_id重命名爲user_id。 – roselan
它仍然不起作用。有些名字仍然是重複的,有些名字應該先出現不。 – Drikus