PHP SQL查询问题



我有一个系统,它正在收集所有的人一个用户正在跟随,也得到这些人的个人资料图像,然后在网页上显示它们,但是,如果一个用户是跟随3人,查询将循环三次发现的第一个追随者,然后尝试显示每个追随者与第一个追随者的图像。一旦完成了对每个用户的操作,查询将继续对第二个追随者执行相同的操作,然后对每个后续的追随者执行相同的操作。

基本上网页看起来是这样的,[用户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>";
                }
            }

第二次调用mysql_query()将混淆第一次调用的结果。您必须为它们指定链接标识符,或者首先将第一个查询的所有结果获取到一个数组中,然后遍历该数组以获取图像。

然而,我认为你也可以做一个LEFT JOIN user_profile来获得图像在相同的查询作为原始的。

您不需要两个不同的查询来实现这一点。(我假设在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>";
    }

相关内容

  • 没有找到相关文章

最新更新