Php 显示新邮件的通知
我有两个表消息和线程,我在收件箱中显示来自消息表的新消息。如果对话开始了,我想像Facebook那样显示一条新消息。当你开始对话时,它会显示1个新的,2个新的。。。下面的代码没有显示。它给我未定义的索引线程id 我想要的是,如果messages表的id与thread表的thread\u message\u id匹配,则显示messages表中每行的未读消息数。如下图所示,我自己刚刚添加了1条新消息,我想显示每行未读消息的数量。 有人知道吗Php 显示新邮件的通知,php,mysql,sql,facebook,Php,Mysql,Sql,Facebook,我有两个表消息和线程,我在收件箱中显示来自消息表的新消息。如果对话开始了,我想像Facebook那样显示一条新消息。当你开始对话时,它会显示1个新的,2个新的。。。下面的代码没有显示。它给我未定义的索引线程id 我想要的是,如果messages表的id与thread表的thread\u message\u id匹配,则显示messages表中每行的未读消息数。如下图所示,我自己刚刚添加了1条新消息,我想显示每行未读消息的数量。 有人知道吗 $stmt = $msg->prepare( "S
$stmt = $msg->prepare(
"SELECT id, to_user, from_user, message, is_read, date, subject, orig_sender, conversation
FROM (
SELECT m.id, max(t.thread_id) thread_id, m.to_user, m.from_user, m.message, m.is_read, m.date, m.subject, m.orig_sender, m.conversation
FROM messages m
LEFT JOIN thread t on(t.thread_message_id = m.id)
WHERE ( m.to_user = ?
AND m.deleted != ?
AND m.del2 != ?)
OR
(m.from_user = ?
AND m.conversation = 'true'
AND m.deleted != ?
AND m.del2 != ?)
GROUP BY m.id
ORDER BY m.conversation asc, thread_id desc
) tbl");
echo $msg->error;
$stmt->bind_param('sss....', $username......);
$stmt->execute();
//I did new select query to get the thread_message_id
$thread = $msg->prepare("SELECT * FROM thread where thread_to_user = ? and thread_is_read = '0'");
echo $msg->error;
$thread->bind_param('s', $username->username );
$thread->execute();
$thread_unread = $thread->get_result();
while ($row = $thread_unread->fetch_assoc()) {
$thread_id = $row['thread_message_id'];
}
while ($row = $max->fetch_assoc()) {
if($thread_id == $row['id'] && $thread->num_rows > 0){echo "<div class='m_new'>".$thread->num_rows." New"."</div>";}
?>
如果需要立即更新页面,则必须使用Ajax。 这样做的目的是像您所做的那样发出第一个请求,并使用Javascript/jquery将结果存储在客户端的一个变量中,设置一个Nseconde刷新间隔,然后使用ajax获取结果,将其存储在另一个新变量中并对其进行比较。 如果不一样,请更新您的邮件号码。否则就让它保持原样。
希望有帮助。我不想立即更新,我只想在页面刷新时显示与父id相关的未读消息。