2013-11-21 5 views
0

У меня есть две таблицы messages и thread Я показываю новые сообщения в папке «Входящие» от messages. Если разговор начался, я хотел бы показать 1 new message точно так же, как это делает Facebook. Когда вы начинаете разговор, он показывает 1 новый, 2 новый ... Код, который у меня ниже, не отображается. Это дает мне undefined index thread_idОтображение уведомлений о новых сообщениях

То, что я хочу, если id из messages таблицы соответствия thread_message_id из thread таблицы, показать количество непрочитанных сообщений для каждой строки в таблице messages. Как и на следующем изображении (я просто положил 1 NEW), я хочу показать количество непрочитанных сообщений для каждой строки. Here is the image Есть ли у кого-нибудь идеи?

$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."&nbsp;New"."</div>";} 
?> 

ответ

0

Если вам необходимо мгновенно обновить вашу страницу, вы должны использовать Ajax. Идея состоит в том, чтобы сделать первый запрос так, как вы это сделали, и сохранить результат в переменной на стороне клиента с помощью Javascript/jquery и установить интервал обновления Nseconde и получить результат (используя ajax), сохранить его в другой новой переменной и сравнить их. Если это не то же самое, обновите свой номер сообщения. Иначе оставим это как есть. Надеюсь, что помогает.

+0

Я не обновляю мгновенно, я просто хочу показать непрочитанные сообщения, связанные с родительским идентификатором на странице обновления. – user3006683

Смежные вопросы