在我当前的通知中,我在更新表中使用了view
列,如果查看了其他view = 1
则更新view = 0
。但是,如果针对特定更新为许多用户发出通知,则如果用户首先查看,则无法正常工作。
因此,我将名为updateview的新表创建为存储的post_id&查看过的user_id。 (此处post_id
是更新表的id
)
我的更新表,其中存储了所有更新,以及在用户查看任何更新时存储更新表ID和用户ID的updateview表。这意味着更新视图表插入id&用户从通知下拉菜单中查看任何帖子时的userID。
如何为selectview id
中没有选择的所有更新表 post_id
创建SELECT语句。
这是我的更新表:[无外键,id(AI)
]
id | work_id | from_id | to_id | date
updateview table:[没有外键,id(AI)]
id | post_id | user_id
下面我的第三个查询选择更新表中与用户关注者,粉丝页面相关的所有ID。在这里,我想减少在updateview表中找到的id。
查询1:获取所有关注者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....
}