根据用户ID显示mysql的结果?

时间:2013-01-02 03:29:37

标签: php mysql

想知道是否有人可以帮助我。我在我的网站上有一个功能,用户可以链接朋友,如果他们转到其他用户个人资料并选择“是我的朋友链接”,那么它将添加该用户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 个答案:

答案 0 :(得分: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 for ascending desc for descending

在你的情况下

$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";

答案 1 :(得分:0)

为什么不创建一个像“添加frinds”的表?

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

4 5

2 1

此处2号用户个人资料ID包含这些ID的朋友(3,1)。