0

「公開」または「友達向け」とマークされている写真を選択するには、いくつかの解決策が必要です。どうすればいいのかわかりません。

公開写真を選択するのは簡単ですか?

        $result = mysql_query("SELECT filename, ownerid, etc... FROM photos 
WHERE public='1' order by id DESC limit $start, $step") or die('Error');

または「友達のために」とマークされた写真さえ

    $result = mysql_query("SELECT filename, ownerid, etc... FROM photos 
WHERE public='1' or for_friends='1' order by id DESC limit $start, $step") or die('Error');

しかし...各写真は異なる所有者に属しており、それらを選択する前に、クエリは私がこの写真の所有者の友人であるかどうかを知る必要があります。

4

2 に答える 2

0

friendsユーザーとその友達をマップするテーブルがあり、列user_idとが含まれているとするとfriend_user_id、クエリは次のようになります。

SELECT * 
FROM photos p 
WHERE p.owner_id IN (SELECT friend_user_id 
                     FROM friends 
                     WHERE user_id = 1234 ) 
  AND (p.is_public = '1' OR p.for_friends = '1');
于 2012-12-08T11:03:43.273 に答える
0

友達の関係に一致するようにユーザーをユーザーにリンクする関係テーブルがあると思います

次に、ログに記録されている場合は、ユーザーIDがあります。写真の所有者の友人である場合は、ユーザーIDを確認してください。はいの場合は、公開写真と友達の写真をリクエストします。それ以外の場合は、公開写真のみをリクエストします。

于 2012-12-08T10:18:15.253 に答える