2014-02-15 41 views
0

用户MYSQL加入表和显示数据从联系人列表

id firstname lastname email   avatar 
    1  Coman  Paul [email protected] ./images/a.png 

友谊

id user1 user2 
    1 1  2 
    2 1  5 
    3 3  1 
    4 2  3 

用户1是朋友与2,3,5

用户2是朋友1,3

我尝试这样做:

 $querym = mysql_query("SELECT user1 
     FROM friendships 
     WHERE user2 = '1' 
     UNION ALL 
     SELECT user2 
     FROM friendships 
     WHERE user1 = '1'"); 

    $numrows = mysql_num_rows($querym); 

if($numrows!=0) 
{ 

Echo '<div id="members"> <ul >'; 
while ($row = mysql_fetch_assoc($querym)) 
{ 


$firstname = $row['firstname']; 
$lastname = $row['lastname']; 
$email = $row['email']; 
$avatar = $row['avatar']; 
Echo ' 
<li> 
............. 

它会显示所有我的朋友,但我可以,看不到他们的名字...... 我也试过

$querym = mysql_query("SELECT users.*, friendships.* FROM users, friendships WHERE  users.id=friendships.user1 AND(friendships.user1='1' OR friendships.user2='1')"); 

,但我得到了一个错误...

警告:mysql_num_rows()期望参数1是资源,null 在C: \ XAMPP \ htdocs中\ OnTheRunningLine \ membri.php上线346

请帮我与解释为什么显示对他们我friends(users.id=1)和数据,因为我需要学习它的核心。

哦,如果你能告诉我一个代码,将显示这些结果后,其他用户不是朋友users.id = 1将是伟大的!

+0

可能重复的[mysql \ _fetch \ _array()期望参数1是资源,布尔给出在选择](http://stackoverflow.com/questions/2973202/mysql-fetch-array-expects-parameter-1资源布尔给定在选择) –

回答

0

select u.firstname, u.lastname,u.email,u.avatar from users u 
inner join friendships f on f.user2 = u.id 
where f.user1 = 1 
union 
select u.firstname, u.lastname,u.email,u.avatar from users u 
inner join friendships f on f.user1 = u.id 
where f.user2 = 1 

我想给你的意图。

+0

不是朋友会只是改变where语句,不知道这个查询将如何有用... –

+0

我仍然得到相同的错误,直到我加入' $ numrows = mysql_num_rows($ querym)或死(mysql_error()); '和我发现:_未知列'u.firstname'在'字段列表'中。我在代码中用“用户”改变了字母“u”,它就像一个魅力! **谢谢!** –

+0

您是否有任何想法可以显示其他用户,而不是该用户的朋友(例如:id = 1)?我尝试用“!=”替换“=”operathor,但它显示所有用户.... –