我需要一些解决方案来选择标记为“公开”或标记为“为朋友”的照片。我不知道怎么可能。
选择公开照片是否容易:
$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');
但是...每张照片属于不同的所有者,在选择之前,查询必须知道我是否是此照片所有者的朋友。
答案 0 :(得分:0)
我猜你有一个关系表,它将用户链接到用户以匹配朋友关系
然后当你是一个loggued时,你有一个用户ID。 检查用户是否是图片所有者的朋友。 如果是,请索取公共图片+朋友图片 否则只要求公开图片。
答案 1 :(得分: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');