【问题标题】:showing results from mysql according to user id?根据用户ID显示来自mysql的结果?
【发布时间】:2013-01-02 03:29:37
【问题描述】:

想知道是否有人可以帮助我。我的网站上有一个功能,用户可以在其中链接朋友,如果他们继续访问另一个用户的个人资料并选择“成为我的朋友链接”,那么它将将该用户 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>";
?>
<?
        }
    ?>

【问题讨论】:

标签: php mysql


【解决方案1】:

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

【讨论】:

  • 肯定没关系,是friend_id还是加了好友?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    user_id 朋友 ID -------- ---------- 2 3

    4 5

    2 1

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

    【讨论】:

      【解决方案4】:

      在您的查询中,您应该使用 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";
      

      【讨论】:

      • 在什么意义上?我不在乎它们是如何排序的,我只希望每个用户的朋友都显示在他们的个人资料中,但目前我让用户的朋友显示在所有用户的个人资料中?
      • 好的,我明白你的意思,但这不起作用。我仍然让用户的朋友显示在所有用户的个人资料中。
      • 如果您要从多个表中收集数据并希望稍后查看它,您可以使用 GROUP-BY e.user_id 函数
      • ORDER-BY 和 GROUP-BY 是显示信息的方式。您要做的是过滤信息。你应该为所有相关的朋友创建一个单独的表
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多