如何使用Ajax通知多个用户帐户

时间:2019-05-06 14:38:24

标签: php ajax

我试图通过将记录插入数据库来向用户帐户发送通知,并使用true或false指示该记录是否已被查看。问题是当第一个用户看到通知时,数据库中的记录变为true,然后其他用户无法看到它。这是我的下面的代码

if($_POST["view"] != '')
 {
  $update_query = "UPDATE notifier SET n_status=1 WHERE n_status=0";
  mysqli_query($conn, $update_query);
 }

1 个答案:

答案 0 :(得分:0)

您需要添加一列以将通知链接到用户表,因此notifier表应该看起来像(这是一个示例,可以根据需要进行调整);

create table "user"(
    id uuid default public.uuid_generate_v4() not null
);

create table "notifier"(
    id uuid default public.uuid_generate_v4() not null,
    user_id uuid references user(id) not null,
    n_status int not null default 0
);

现在,当您向ID为852f5ea9-0bad-4c0f-aab8-00479eae026f的用户添加通知时:

insert into "notifier" (id, user_id, n_status) 
    values (public.uuid_generate_v4(), '852f5ea9-0bad-4c0f-aab8-00479eae026f', 0);

然后,当该用户阅读ID为ddf5fb8f-3100-4860-a61e-bae2a1393a8e的通知时,您可以更改通知状态。

update "notifier" set n_status = 1 
    where user_id = '852f5ea9-0bad-4c0f-aab8-00479eae026f'
    and id = 'ddf5fb8f-3100-4860-a61e-bae2a1393a8e'

为了安全起见,我认为最好通过id(来自客户端)来更改状态,并添加user_id(如果您具有正确的身份验证,则客户端无法伪造)。