我正在我的网站上建立一个朋友系统,我在PHP/MYSQL方面做得很好,但我只是被这个难住了。我正在尝试创建某个用户的朋友列表。MYSQL表' friend‘使用两个字段RelatingUser和RelatedUser,当向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'];
}发布于 2013-01-21 06:06:10
如果要按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发布于 2013-01-21 05:53:24
为什么不使用查询对它们进行排序?
"SELECT * FROM friend WHERE RelatingUser='$users' OR RelatedUser='$users' ORDER BY id ASC"https://stackoverflow.com/questions/14429631
复制相似问题