оповещения о новом на сайте

entonee

Новичок
оповещения о новом на сайте

Привет всем
как можно сделать опевещения на сайте
так что они показались человеку только первый раз . и то если он их еще не читал.

например есть 4 обновления
т.е. если один чел прочитал 3 обновления - и вышло новое - то ему просто одна она и покажется
а если чел зашел первый раз то ему соответственно все 4 покажуться

-----------

спасибо

-~{}~ 30.08.10 16:29:

и еще

как сделать систему что показывал какой чел сейчас в онлайне и вообще сколько людей в онлайне - спасибо...
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
1. Можно. У самого идеи есть?
2. В поиск по форуму. Обсуждалось 100 раз.
 

korpus

злой бобёр
Информация о прочитанных обновлениях должна сохраняться в куках. Из анализа кук в скрипте страницы следует решать, что показывать, а что нет.
 

entonee

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

-------

про онлайн понял уже.. время пишем каждого юзера и выбираем за последнии 300 мс..

-------

спасибо всем большое - тема закрыта...
 

entonee

Новичок
.. )) точнее опечатался
300 сек.

вот что получилось в результате - получилась очень компактная функция.

$nujraznica = 300;

$sql = "SELECT * FROM `online` WHERE `uid` = '".$_SESSION['uid']."'";
$r = mysql_query($sql);
$num = mysql_num_rows($r);
if($num != 0){
$sql23 = "UPDATE `online` SET `utime` = '".time()."' WHERE `uid` = '".$_SESSION['uid']."' LIMIT 1 ;";
}else{
$sql23 = "INSERT INTO `online` ( `id` , `uid` , `utime` )
VALUES ('', '".$_SESSION['uid']."', '".time()."');";
}
mysql_query($sql23);

function usertime($uid){

$sql = "select * from `online` where `uid` = '".mysql_real_escape_string($uid)."'";
$r = mysql_query($sql);
$rr = mysql_fetch_assoc($r);
if(mysql_num_rows($r) != 0){
$usrtime = $rr['utime'];
}else{
$usrtime = 0;
}
$raznica = (time() - $usrtime);
if($raznica > 300){
$ans = "offline";
}else{
$ans = "online";
}
return $ans;

}

подключаем

<?=usertime('userid');?>
 

Ragazzo

TDD interested
fixxxer
ТС фанат Бекхема, он играл везде под 23 номером) прошу прощения за мой бестактный юмор)
 

entonee

Новичок
))) да нет, я совсем не смотрю футбол )... просто чтоб не повторялось хотел написать 2.... а нажал наверное 3.. так и осталось ))

кстати только что разглядел что $nujraznica тоже не нужна

пошел читать про дупликейт кей )

-~{}~ 31.08.10 09:27:

... а- супер э...

получается что если есть запись по айдейт если нет то инсерт в одном флаконе))

спасибо большое..

$sql23 = "INSERT INTO `online` ( `id` , `uid` , `utime` )
VALUES ('', '".$_SESSION['uid']."', '".time()."') ON DUPLICATE KEY UPDATE SET `utime` = '".time()."' WHERE `uid` = '".$_SESSION['uid']."'";}
mysql_query($sql23);

function usertime($uid){

$sql = "select * from `online` where `uid` = '".mysql_real_escape_string($uid)."'";
$r = mysql_query($sql);
$rr = mysql_fetch_assoc($r);
if(mysql_num_rows($r) != 0){
$usrtime = $rr['utime'];
}else{
$usrtime = 0;
}
$raznica = (time() - $usrtime);
if($raznica > 300){
$ans = "offline";
}else{
$ans = "online";
}
return $ans;

}
 
Сверху