当日の通知view
で、更新テーブルの列を使用しました。これview = 1
は、else を表示すると更新されますview = 0
。ただし、特定の更新について多くのユーザーに通知する場合、ユーザーが最初に表示した場合は機能しません。
そのため、updateview という名前の新しいテーブルを作成して、表示した post_id と user_id を保存します。(ここpost_id
に更新テーブルがありますid
)
ユーザーが更新を表示した場合、すべての更新が格納された更新テーブルと、更新テーブル ID とユーザー ID が格納された updateview テーブル。つまり、ユーザーが通知ドロップダウン メニューから投稿を表示すると、updateview テーブルが ID とユーザー ID を挿入します。
id
updateview になかったすべての更新テーブルを選択するための SELECT ステートメントの作成方法post_id
。
これが私の更新テーブルです:[外部キーなし、id(AI)
]
id | work_id | from_id | to_id | date
updateview テーブル: [外部キーなし、id(AI)]
id | post_id | user_id
以下の 3 番目のクエリでは、ユーザー フォロワー、ファン ページに関連する更新テーブルからすべての 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....
}