MYSQL连接表并显示联系人列表中的数据

时间:2014-02-15 10:25:22

标签: php mysql

用户

  id firstname lastname    email         avatar
  1     Coman      Paul   x@y.com    ./images/a.png

友谊

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

用户12,3,5

的朋友

用户21,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为resource,null   在第346行的C:\ xampp \ htdocs \ OnTheRunningLine \ membri.php中给出

请帮我一个核心,用于显示我的friends(users.id=1)及其相关数据,并解释原因,因为我需要学习它。

哦,如果你能告诉我一个代码会显示在这些结果之后,那么与users.id = 1不是朋友的其他用户就会很棒!

1 个答案:

答案 0 :(得分: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

我认为你的意图。