0

私は自分の Web サイトでフレンド システムを構築しています。私は PHP/MYSQL で非常に優れていますが、これには困惑しています。特定のユーザーの友達のリストを作成しようとしています。MYSQL テーブル 'friend' は RelatingUser と RelatedUser の 2 つのフィールドで動作し、フレンド リクエストが RelatedUser に送信されると、両方のユーザーの名前を含む行が作成されます。

しかし、基本的には、両方のフィールドから特定の結果を取得し、ID で表示するという意図で基本的なクエリを実行しています。通常、私は mysql_fetch_assoc を使用してから変数をエコーし​​ますが、2 つの異なる変数があり、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'];  

      }
4

2 に答える 2

1

RelatedUser/RelatingUser 以外の 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-20T22:06:09.973 に答える
0

クエリを使用して並べ替えてみませんか?

"SELECT * FROM friend WHERE RelatingUser='$users' OR RelatedUser='$users' ORDER BY id ASC"
于 2013-01-20T21:53:23.993 に答える