在我当前的通知中,我使用了view
更新表中的一列,view = 1
如果查看其他内容,该列会更新view = 0
。但是,如果要为许多用户发出特定更新的通知,如果用户先查看,它就无法工作。
因此,我创建了名为 updateview 的新表来存储查看的 post_id 和 user_id。(这里post_id
是更新表的id
)
我存储所有更新的更新表和存储更新表 ID 和用户 ID(如果用户查看任何更新)的更新视图表。这意味着当用户从通知下拉菜单查看任何帖子时,updateview 表插入 id 和 userID。
如何为选择id
不在 updateview 中的所有更新表创建 SELECT 语句post_id
。
这是我的更新表:[没有外键,id(AI)
]
id | work_id | from_id | to_id | date
updateview 表:[无外键,id(AI)]
id | post_id | user_id
在我的第三个查询下面,从更新表中选择与用户关注者、粉丝页面相关的所有 id。在这里,我想减少在 updateview 表中找到的 id。
查询1:获取所有follower id并返回:$f2_ids[] = $row['follow'];
查询2:获取所有喜欢的粉丝页面ID并返回:$pg_ids[] = $row['userid'];
查询 3:
foreach((array)$f2_ids as $indx => $value) {
$myid = $session->id;
$g = mysqli_query($db,"SELECT id FROM update WHERE
`to_id`='".$myid."' AND `from_id`='".$f2_ids[$indx]."' OR
`to_id`='".$f2_ids[$indx]."' AND `from_id`='".$myid."' OR
`to_id`='".$pg_ids[$indx]."' OR
`from_id`='".$pg_ids[$indx]."' AND `to_id`='0' GROUP BY id") or
die(mysqli_error($db));
$count = mysqli_num_rows($g);
//etc... do something....
}