需要选择标记为“公开”或标记为“为朋友”的照片

时间:2012-12-08 10:04:26

标签: mysql

我需要一些解决方案来选择标记为“公开”或标记为“为朋友”的照片。我不知道怎么可能。

选择公开照片是否容易:

        $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');

但是...每张照片属于不同的所有者,在选择之前,查询必须知道我是否是此照片所有者的朋友。

2 个答案:

答案 0 :(得分:0)

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

然后当你是一个loggued时,你有一个用户ID。 检查用户是否是图片所有者的朋友。 如果是,请索取公共图片+朋友图片 否则只要求公开图片。

答案 1 :(得分: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');