我正在尝试创建类似Facebook中的通知系统。我在本文末尾解释了这个通知系统的确切目标。
以下代码应显示有关帖子/评分等的所有通知。当然除了我的帖子。此外,它还应显示所有通知,其中我是内容的创建者(n.creator_id
)。但结果是空的:
SELECT
(SELECT COUNT(*) FROM `notification_read` WHERE `is_read`='0' AND `uid`='".$_SESSION['uid']."') AS count,
n.`id`,n.`site`,n.`site_id`,n.`creator_uid`,n.`type`,
nu.`id` AS nuid,nu.`uid` AS nu_uid,nu.`date`,
u.`gender`
FROM `notification` AS n
LEFT JOIN `notification_user` AS nu ON nu.`nid` = n.`id`
LEFT JOIN `users` AS u ON u.`id` = nu.`uid`
WHERE
(
nu.`uid` != '".$_SESSION['uid']."'
AND
n.`creator_uid` = '".$_SESSION['uid']."'
)
GROUP BY n.`id`
ORDER BY nu.`date` DESC
LIMIT 7
表结构是:
notification
:id,site_id,creator_uid,site,type
notification_user
:id,nid,uid,date
notification_read
:id,nuid,uid,is_read
进一步说明:我需要LEFT JOIN users
,因为我需要性别说" X喜欢他/她的评论"。 COUNT显示我想要在该地球图标上显示的通知量。
此外,我无法想到一个更好的桌面结构,因为我需要考虑我想要做的事情。但是,如果有更好的方法或更好的表格结构或我可以改进的任何其他内容,我可以提出建议。
我的目标是显示以下内容的通知:
几乎是基本的社交网络事物。提前感谢您对该结构的建议或/和我的问题的答案,为什么我的SELECT语句显示空结果。