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

我猜你有一个关系表,它将用户链接到用户以匹配朋友关系

然后,当您登录时,您将拥有一个用户 ID。检查用户 ID 是否是图片所有者的朋友。如果是,则请求公共图片+朋友图片,否则仅请求公共图片。

于 2012-12-08T10:18:15.253 回答
0

假设您有一个friends将用户与他们的朋友进行映射的表,具有列user_idfriend_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 回答