2011-04-04 44 views
0

我正在收集所有用户的关注的人也越来越这些人的个人资料图片,然后在网页上显示它们,但如果用户下3人,查询将三个筋斗系统找到第一个追随者的时间,然后尝试显示每个追随者的第一个追随者的图像。一旦这已完成为每个用户,查询将移动到第二个跟随者,然后每个后续跟随者相同。PHP SQL查询问题

因此,基本上该网页的样子, [正确的名称和图像用于用户1] [对正确的名称不正确图像用户2]

[正确的名称不正确的用户图像[对用户3正确的名称不正确图像] 1] [正确的名称和用户2用户3]

等等,这取决于有多少人用户以下[正确的名称不正确图像的图像。我觉得我可能不是这个解释很好,如果没有请说,我要改写

这是我使用

$sql_friends = "SELECT `first_name`, `surname`, `username` FROM users JOIN followers ON followers.friend_id = users.user_id WHERE followers.user_id = '$user_session_id'"; 
      $result_friends = mysql_query($sql_friends); 
      while($row = mysql_fetch_array($result_friends)){ 
       $friendforename = $row['first_name']; 
       $friendsurname = $row['surname']; 
       $friendusername = $row['username']; 
       $sql_img = "SELECT `img` FROM followers JOIN user_profile ON followers.friend_id = user_profile.user_id WHERE followers.user_id = '$user_session_id'"; 
       $result_img = mysql_query($sql_img); 
       while($img_row = mysql_fetch_assoc($result_img)){ 
        $friend_image = $img_row['img']; 
        echo "<a href=\"$friendusername/\"><img src=\"../{$friendusername}/{$friend_image}\" title=\"{$friendforename} {$friendsurname}\"/></a>"; 
       } 
      } 
+0

相当旁白:假设followers.user_id是一个整数字段,你不需要把周围的变量报价。你可以做followers.user_id = $ user_session_id – 2011-04-04 18:24:55

回答

0

第二次你打电话mysql_query()会搞乱结果的代码的第一个。您必须为它们指定链接标识符,或者首先将第一个查询的所有结果提取到数组中,然后遍历该数据库以获取图像。

不过,我想你也可以做一个LEFT JOIN user_profile得到的图像在同一个查询的原始之一。

0

你不需要两个不同的查询来实现这一点。(我假设有可以在user_profile表每个用户只有一条记录)。

试试下面的代码:

$sql_friends = "SELECT `first_name`, `surname`, `username`, `img` FROM users JOIN followers ON followers.friend_id = users.user_id LEFT JOIN user_profile ON followers.friend_id = user_profile.user_id WHERE followers.user_id = '$user_session_id'"; 
    $result_friends = mysql_query($sql_friends); 
    while($row = mysql_fetch_array($result_friends)){ 
     $friendforename = $row['first_name']; 
     $friendsurname = $row['surname']; 
     $friendusername = $row['username']; 
     $friend_image = $row['img'];   
     echo "<a href=\"$friendusername/\"><img src=\"../{$friendusername}/{$friend_image}\" title=\"{$friendforename} {$friendsurname}\"/></a>"; 
    } 
+0

这只会带来只有三个朋友,但没有图像,因为查询只是告诉它从用户中选择'first_name','surname','username',它还需要从user_profile中选择'img'。我如何去告诉它也从这张表中选择而不会在连接中造成错误? – Lit 2011-04-04 18:25:50

+0

@Lit:忘记将img添加到原始查询中。现在更新了帖子。检查它请。 – Chandu 2011-04-04 18:27:02

+0

这就是我正在努力,但图像仍是空白,查看源'img'没有被检索 – Lit 2011-04-04 18:31:37