我有那些代码片段可以检查粉丝表,并让每个煽动你的人都知道。然后它会检查您是否已将它们扇动,如果是,则显示其用户名和个人资料图片。
它检查你是否使用$ count扇动它们我假设这是它正在绊倒的地方。但是萤火虫没有出现任何错误。
<?php $friendlist = mysql_query("SELECT * FROM fans WHERE username='$user'") or die(mysql_error());
while($row = mysql_fetch_array($result1)) {
$friendname = $row['fanned'];
$friendlist2 = mysql_query("SELECT * FROM fans WHERE username='$friendname' AND fanned='$user'") or die(mysql_error());
$count = mysql_num_rows($friendlist2);
if($count == 1 ){
$avatar = mysql_query("SELECT * FROM users WHERE username='$friendname'") or die(mysql_error());
while($row3 = mysql_fetch_assoc($avatar)) {
$filename = $row3['avatar'];
if($filename != "") {
$friendpic = '<img id="headeravapic" src="profileavatars/' . $friendname . "/" . $filename . '" />';
}
else {
$friendpic = '<img id="headeravapic" src="images/nopic.PNG" />';
}
echo '<div align="center" id="onlinepic">' . $friendpic . '<p />' . $friendname . '</div>';
}
}
}?>
答案 0 :(得分:1)
您可以将其简化为一个查询。类似的东西:
SELECT f.*, u.avatar, f2.username as YouFanThem
FROM fans f
LEFT JOIN fans f2 ON f.fanned=f2.username and f2.fanned='$user'
LEFT JOIN users u ON f.fanned=u.username
WHERE f.username='$user'
while($row = mysql_fetch_array($result1)) {
$FriendName = $row['fanned'];
$Avatar = $row['avatar'];
$MutualFriend = (empty($row['YouFanThem']) ? false : true);
}
如果你想仅限于那些你是共同粉丝的人,那么将“LEFT JOIN”更改为“INNER JOIN” - 那么你也不需要在返回结果中使用“YouFanThem”。
我也鼓励你不要使用“SELECT *”,因为它很重,只选择你需要的字段。
最后,强制要求注意mysql_functions正在折旧,所以请检查PDO。