[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ссылка загорается если есть новые сообщения
neversmile
Доброго времени суток. Есть страница с сообщениями. Сообщения добавляются в базу. Как сделать так, чтоб ссылка на страницу с сообщениями загоралась(меняла цвет) если есть новые сообщения. Я ума не преложу как это сделать. Расщитываю на вашу любую помощь. Заранее благоданен.



Спустя 3 минуты, 51 секунда (30.07.2010 - 19:44) Lenarfate написал(а):
там где идет добавление в базу, так же прописываешь смену цвета ссылки

Спустя 3 минуты, 10 секунд (30.07.2010 - 19:48) neversmile написал(а):
Можно пример если не трудно? И еще нужно чтоб после посещения ссылки, она меняла свой прежний цвет.

Спустя 23 минуты, 59 секунд (30.07.2010 - 20:12) Lenarfate написал(а):
по поводу
Цитата
еще нужно чтоб после посещения ссылки, она меняла свой прежний цвет.

здесь http://www.htmlbook.ru/css/link.html

а пример

$a = '<a href="">qwe</a>';
//тут запрос к базе
//


$a = '<a href="" style="color:red">qwe</a>';


вот типа того, грубо говоря

Спустя 18 минут, 41 секунда (30.07.2010 - 20:30) neversmile написал(а):
Ничего не работает...Объясню еще раз. Страница с сообщениями, сообщения добавляются в БД. Ссылка на страницу с сообщениями вообще на другой странице, нужно чтоб она меняла свой цвет на красный если есть новые сообщения, если нет то горит синим. Если есть новые сообщения, перехожу по ссылке, и ссылка становится вновь синей...

Спустя 14 часов, 16 минут, 8 секунд (31.07.2010 - 10:46) .:JIexa:. написал(а):
Честно говоря сам когда-то пытался реализовать подобную вещь. Тогда хотел, что бы на странице с сообщениями не прочитанные выделялись и так же ссылка на страницу сообщений что бы менялась в зависимости от наличия новых сообщений.
Не знаю насколько правильно это, но мне тогда пришло в голову такое:
- создать дополнительное поле в таблице БД. Для записи в нем статуса сообщения: прочитано\не прочитано.
Сделать подсчет полей в таблице БД с сообщениями статуса "не прочитано" и ссылку менять в зависимости с этим значением.
А при переходе на страницу сообщений и просматривании их = заменять значение поля статуса сообщений на "прочитано"

Это может быть и не правильно. Не знаю, как это сделал бы специалист. Но мне, салаге, пришла вот такая идея в голову. Тогда я ее так и не осуществил. Не хватило знаний. А сейчас пока и не брался за это.
Попробуй, может у тебя получится.
А к тем, кто шарит такая просьба: выскажите свое мнение по поводу вот такого вот подхода к данной задаче. Рационально ли при прочтении сообщений изменять значение поля статуса в таблице БД ???

Спустя 11 минут, 40 секунд (31.07.2010 - 10:58) Basili4 написал(а):
neversmile
Скажи вот что. Тебе надо чтобы ссылка меняла цвет как только сообщение будет или только после перезагрузки страницы с этой ссылкой в первом случае тебе нужны будут знания о Ajax во втором немного понимания принципов работы ПХП.

Спустя 8 минут (31.07.2010 - 11:06) neversmile написал(а):
Basili4
Можно и после перезагрузки страницы. Это не важно.
Прочитал пост .:JIexa:., сам думал так сделать, но думаю это не очень правильно...Если кто-то делал подобную штуку, выложите код пожалуйста.

Спустя 12 минут, 22 секунды (31.07.2010 - 11:18) Basili4 написал(а):
neversmile
Ну после перезузки вообще просто.

пишешь не сложную функцию которая возвращает массив ID не прочитанных пользователем сообщений если были изменения и пустой массив если не было.

Как она работать должна

получаешь ID пользователя он же вошел в систему значит у него есть свой ID у тебя должна быть таблица с 2 полями 1 -ID пользователя 2 - индификатор прочитанного сообщения.

по ID вытаскиваешь значения из 2 поля. и выполняешь запрос который показывает сообщения не не яв-ся прочитаными. (щас напишу такой запрос) ты в массив их ID и возвращай. ну а там уже опредилишся что с ним делать


Спустя 3 минуты, 35 секунд (31.07.2010 - 11:22) neversmile написал(а):
Спасибо, вроде бы понял...

Спустя 36 минут, 25 секунд (31.07.2010 - 11:58) neversmile написал(а):
Basili4
Все получилось, сделал немного не так как ты посоветовал но тоже работает.

Если кому интерестно вот код

<?php

require '../connect.php';

$id = $_GET['id'];
if($id){
$res = mysql_query("UPDATE contact SET new ='0' WHERE id='".$id."'");

$result1 = mysql_query("SELECT * FROM contact WHERE `id`='".$id."'");
$row1 = mysql_fetch_array($result1);
echo "<table cellpadding='0' cellspacing='0'><tr>
<td class='contactTopic'><a href='?act=contact&id="
.$row1['id']."'>".$row1['topic']."</a></td>
</tr><tr>
<td class='contact'>"
.$row1['message']."</td>
</tr></table>"
;
}else{

echo "<table><tr>
<td class='td' width='200px'>Тема</td>
</tr></table>"
;

$result = mysql_query("SELECT * FROM contact ORDER BY id DESC");
while($row = mysql_fetch_array($result)){

if($row['new'] == '1'){
echo "<table><tr>
<td width='200px' class='contactTopic1' bgcolor='eee'><a href='?act=contact&id="
.$row['id']."'>".$row['topic']."</a></td>
</tr>
</table>"
;
}else{
echo "<table><tr>
<td width='200px' class='contactTopic1'><a href='?act=contact&id="
.$row['id']."'>".$row['topic']."</a></td>
</tr>
</table>"
;
}
}
}


?>



Спустя 10 часов, 1 минута, 30 секунд (1.08.2010 - 22:00) jalvar написал(а):
Я это год назад без проблем зделал знатоки блин )))
В дб добавляешь поле view к примеру со значением null
При просмотре сообщения меняем view на 1
И выводим сообщения по логике если view не равно 1 то сделать красным. Или если есть где view null то ссылка красная...

Спустя 21 минута, 43 секунды (1.08.2010 - 22:22) Basili4 написал(а):
jalvar
Как ты отличишь кто просматривал сообщения пользователь Вася и пользователь Петя. Или ты считаешь что если Петя посмотрел значит Васе не надо показывать

Спустя 1 час, 13 минут, 18 секунд (1.08.2010 - 23:35) inpost написал(а):
Каждое сообщение имеет ещё одну ячейку в БД (статус)!
1 - непрочитанное!
2 - прочитанное!
3... и далее - на желание!
Делаешь проверку, есть ли сообщения со статусом 1 у конкретного пользователя, если есть - добавляешь оформление: <span style="newmassage">есть сообщения</span>

Собственно, ничего сложного =)

Спустя 8 часов, 40 минут, 54 секунды (2.08.2010 - 08:16) Basili4 написал(а):
inpost
Собственно ситуация как на этом форуме сообщения имеют несколько адресатов например всех. Как с такой структурой ты сделаешь следующее

Петя прочитал сообщение №1 у него оно выделилось как прочитанное. А Вася не прочел сообщение №1 у него оно должно быть выделено как не прочитанное.

Спустя 1 час, 12 минут, 34 секунды (2.08.2010 - 09:28) inpost написал(а):
Basili4 А какая разница? Если 2-м пользоватям, то будут 2 отдельно занесенные данные (одинаковые) только с разными получателями. =)

Спустя 43 минуты, 36 секунд (2.08.2010 - 10:12) Joker-Job написал(а):
Цитата (inpost @ 1.08.2010 - 20:35)
Каждое сообщение имеет ещё одну ячейку в БД (статус)!

скорее всего не еще одну ячейку а табличку где храниться ид сообщения и пользователя, соответсвенно если такая запись найдена то сообщение прочитано если нет то нет. иначи я чесно говоря невижу другова способа хранить инфу кто прочел сообщение а кто нет.

Спустя 22 минуты, 46 секунд (2.08.2010 - 10:35) Basili4 написал(а):
Joker-Job
Вот это я как раз и предлагал сделать несколькими постами ранее.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.