0

想知道是否有人可以帮助我。我的网站上有一个功能,用户可以在其中链接朋友,如果他们继续访问另一个用户的个人资料并选择“成为我的朋友链接”,那么它将将该用户 ID 添加到数据库并将其与添加朋友 ID 的用户相匹配,并且被添加为朋友 ID 的人。

现在我正在尝试回显用户在其页面上拥有的朋友,目前我在下面使用的功能正在将用户朋友回显给所有其他用户的个人资料。

但是我希望每个用户的朋友都单独显示,所以如果用户 1 在用户 1 的页面上添加用户 3 4 和 5 作为他的朋友,它将显示用户 3 4 和 5。

如果用户 2 添加好友 8 9 和 10 则用户 8 9 和 10 将显示在用户 2 的页面中。

有人可以告诉我哪里出错了。

谢谢。

功能代码:

function get_friends() {
            global $connection;
            global $_SESSION;
            $query = "SELECT e.friend_id, p.display_name
                        FROM ptb_friends e, ptb_profiles p
                        WHERE e.user_id = p.user_id
                        LIMIT 3";
                        $friend_set = mysql_query($query, $connection);
            confirm_query($friend_set);
            return $friend_set;
        }  

我的回显代码:

<?php
        $friend_set = get_friends();
while ($friend = mysql_fetch_array($friends_set)) {

    echo "<a href=\"profile.php?id={$friend['friend_id']}\"><img width=\"60px\" height=\"60px\" class=\"friend_pic\" src=\"data/photos/{$friend['friend_id']}/_default.jpg\" /></a>";
?>
<?
        }
    ?>
4

4 回答 4

0

在您的查询中,您应该使用 ORDER-BY 函数

select e1."Event_Name", v2."Venue", e1."Ticket_price"
from "events" e1, "venues" v2
where (e1."VenueNo" = v2."VenueNo")
order by e1."Ticket_price" asc

// asc 升序 desc 降序

在你的情况下

$query = "SELECT e.friend_id, p.display_name
                    FROM ptb_friends e, ptb_profiles p
                    WHERE e.user_id = p.user_id
                    ORDER BY e.user_id 
                    LIMIT 3";
于 2013-01-02T03:32:28.073 回答
0

为什么不创建一个像“add-frinds”这样的表呢?

于 2013-01-02T03:40:52.197 回答
0

要在查询中连接两个表,请使用Mysql-JOIN-Functions

于 2013-01-02T03:44:20.850 回答
0

您将当前配置文件用户 ID 传递到此页面。然后在你的sql上应用这种格式的where子句 where p.user_id = current_profile_user_id。所以你只会得到这个用户配置文件的朋友。(所以必须有一个表来满足这种格式的查询)。

user_id friends_id -------- ---------- 2 3

4 5

2 1

这里 2 个数字用户个人资料 ID 有这些 ids(3,1) 的朋友。

于 2013-01-02T04:04:29.730 回答