【发布时间】:2011-07-29 08:58:59
【问题描述】:
我有一个系统,它收集用户关注的所有人并获取这些人的个人资料图片,然后将它们显示在网页上,但是如果用户关注 3 个人,则第一次查询将循环 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>";
}
}
【问题讨论】:
-
撇开:假设followers.user_id 是一个整数字段,您不需要在变量周围加上引号。你可以做 follower.user_id = $user_session_id
标签: php sql while-loop