У меня есть две таблицы messages
и thread
Я показываю новые сообщения в папке «Входящие» от messages
. Если разговор начался, я хотел бы показать 1 new message
точно так же, как это делает Facebook. Когда вы начинаете разговор, он показывает 1 новый, 2 новый ... Код, который у меня ниже, не отображается. Это дает мне undefined index thread_id
Отображение уведомлений о новых сообщениях
То, что я хочу, если id
из messages
таблицы соответствия thread_message_id
из thread
таблицы, показать количество непрочитанных сообщений для каждой строки в таблице messages
. Как и на следующем изображении (я просто положил 1 NEW
), я хочу показать количество непрочитанных сообщений для каждой строки. Есть ли у кого-нибудь идеи?
$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>";}
?>
Я не обновляю мгновенно, я просто хочу показать непрочитанные сообщения, связанные с родительским идентификатором на странице обновления. – user3006683