公告已读实现php,Php有效地将消息标记为已读

我有一个消息传递系统(PHP / MYSQL),我已经在简单的消息表中准备了读/未读的字段

Table

- msgbody

- datetime

- receipent

- read/unread

- sent/unsent (this field is for sending of notification)

我有两个问题

我理解当用户创建消息时,我将插入到表中,字段为Unread,当我第一次使用以下语句检索消息时

MYSQL statement: Select * from table WHERE receipient = "a";

醇>

我做的是通过数组,然后使用多个插入语句将未读字段设置为读取(非常低效!)

无论如何我可以放弃数组循环并在选择时更新字段吗?

这是确定是否读取消息的正确方法吗?

2)我正在使用jquery作为我的前端,我可以对php进行ajax调用,但我仍然很好奇我该如何做我在前端确定用户是否加载并看到了消息

任何人都可以了解应该如何做?Ajax调用更新以在Ajax调用加载成功时读取?

读取数据库时Ajax调用更新?

Ajax调用更新......什么时候?

更新:已添加代码。

我的用于INSERTING消息的php代码

免责声明:代码工作正常。这是我需要帮助的过程。

$query = $this->db->prepare('INSERT INTO table (msgbody,date time,recipient,read,sent) VALUES(:msg,:date,:user,:read,:sent);

if ($query->execute(array(

':msg' => $msg,

':date' => $datetime,

':user' => $user,

':read' => '0',

':sent' => '0'))) {

return TRUE;

}

My php code for retrieving of message

$query = $this->db->prepare('SELECT * FROM table WHERE recipient = :user);

if ($query->execute(array(

':user' => $user

))){

$data = $query->fetchAll();

foreach ($data as $msg) {

if $msg['read'] == '0';

$this->updateRead($msg['id']);

}

$ this-> updateRead函数包括将表读取字段更新为1,以及将Pusher发送给原始收件人,以便他们知道该消息已被读取。

所以会发生什么事情,如果我有1000条消息,我可能最终会循环1000次,只是为了将2-3条消息标记为“读取”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值