gpt4 book ai didi

php - mysql结果只能看到好友id

转载 作者:行者123 更新时间:2023-11-29 14:36:52 26 4
gpt4 key购买 nike

我正在执行一个查询,我想选择那些用户登录时看不到但他的 friend 可以看到的记录。我。 e. jhon doe 更新其状态且 vikram 应该看到的通知,而不是 john doe 。任何人都可以帮忙吗

这是查询

select * 
from notification
where title_text='Global Notification'
and user_id=3 and owner_user_id != 3 and is_seen=0
order by time_stamp desc

这里用户ID是登录的用户。owner_user_id 是进行状态更新的人

因此,当 john doe 进行更新 (owner_user_id) 时,只有 vikram 应该看到它 (user_id),而不是 johndoe

最佳答案

首先使用整数表示消息状态(title_text 应该类似于 message_type),对于数据库来说会更快。

下一步:如果您想创建状态系统,请尝试执行类似邮件系统的操作,它将具有如下字段:id,from_id,to_idmessage_type消息时间戳状态。您 friend 的状态将添加到此表中,例如NULL,3,15,1,1,'blablabla','2012-01-13 11:44:00',0

下一步获取所有通知(例如message_type=1)

SELECT * FROM 'my_messages' WHERE to_id=15 AND message_type=1 AND status=0 ORDER BY time_stamp DESC

您将收到当前用户(to_id=15)的所有新(status=0)通知(message_type=1)

如果您想创建公共(public)状态,则不应在 WHERE 子句中检查对它们的访问权限。创建您已阅读的用户数组并选择您未阅读的他们的状态(将阅读状态保存到 COOKIE):

$myFriends = array(4,17,69,254,1,24); // users id
$iHaveRead = array(12,55,1245,1245,1243); // messages id


$myNotification = mysql_query("
SELECT * FROM 'my_notifications'
WHERE
owner_user_id IN (".implode(',',$myFriends).")
AND
time_stamp > DATE_SUB(NOW(), INTERVAL 1 MONTH)
AND
id NOT IN (".implode(',',iHaveRead ).")
ORDER BY time_stamp DESC
");

此查询将返回 1 个月内您 friend 的所有未读状态

关于php - mysql结果只能看到好友id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8847420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com