Php 显示来自两个不同字段的数据

Php 显示来自两个不同字段的数据,php,mysql,Php,Mysql,我正在我的一个网站上建立一个朋友系统,我在PHP/MYSQL方面有很好的造诣,但这一点让我感到困惑。我正在尝试创建某个用户的朋友列表。MYSQL表“friend”使用两个字段RelatingUser和RelatedUser,当一个friend请求被发送到RelatedUser时,它们会创建一个包含两个用户名的行 但基本上我运行的是一个基本查询,目的是从两个字段中获取特定结果,然后按id显示。通常我会使用mysql_fetch_assoc,然后回显变量,但有两个不同的变量,我希望它们按id的顺序排

我正在我的一个网站上建立一个朋友系统,我在PHP/MYSQL方面有很好的造诣,但这一点让我感到困惑。我正在尝试创建某个用户的朋友列表。MYSQL表“friend”使用两个字段RelatingUser和RelatedUser,当一个friend请求被发送到RelatedUser时,它们会创建一个包含两个用户名的行

但基本上我运行的是一个基本查询,目的是从两个字段中获取特定结果,然后按id显示。通常我会使用mysql_fetch_assoc,然后回显变量,但有两个不同的变量,我希望它们按id的顺序排列

有什么想法吗

      $users = mysql_real_escape_string($_GET['username']);

      $other_friend_query = mysql_query("SELECT * FROM friend WHERE RelatingUser='$users' || RelatedUser='$users'");

       while( $other_friend_assoc = mysql_fetch_assoc($other_friend_query) ) {
$friend_related = $other_friend_assoc['RelatedUser'];
$friend_relating = $other_friend_assoc['RelatingUser'];  

      }

为什么不使用查询对它们进行排序

"SELECT * FROM friend WHERE RelatingUser='$users' OR RelatedUser='$users' ORDER BY id ASC"

如果要按除RelatedUser/RelatingUser中的id以外的id对记录进行排序, 唯一的问题是回显正确的字段,这应该可以:

echo $friend_related == $users ? $friend_relating : $friend_related;
否则,如果希望记录由RelatedUser或RelatingUser排序(取决于未知的记录),则类似这样的查询应该可以完成以下任务:

SELECT UserID FROM 
(SELECT RelatingUser AS UserID
 FROM friend
 WHERE RelatedUser = ...
 UNION
 SELECT RelatedUser AS UserID
 FROM friend
 WHERE RelatingUser = ...) AS friends
ORDER BY UserID

不要使用mysql*函数-它们不安全。使用PDO或mysqli*您的意思是结果集应按“RelatedUser”或“RelatingUser”排序吗?它应按包含“Related”或“Relating”中用户名的行的id排序@Ifthikhan@NoahSmith难道一个简单的“按id asc订购”就不能满足要求吗?我会附和什么,这才是真正的问题@Ifthikhanw为了得到这些结果,我会回显什么?你会检查每一行的结果集,看看哪个键与$users变量相等。对于底部的查询,你能告诉我我会回显什么吗?当查询返回一个名为UserID的字段时,给定你的代码,你必须回显
$other\u friend\u assoc['UserID']