Сложение даты! (вычитание).

Yuriy_S

-=PHP-Club=-
Сложение даты! (вычитание).

Подскажите плиз, вот собрался я наконец таки написать скриптик который выводит на страницу посетителей (имена посететелей). Так вот, значит делаю я таким образом:
Пишу в БД время входа юзера, его имя и прочую инфу, и когда вывожу их, то как бы пытаюсь от реального времени отнять к примеру 5 минут, и сравнить с записью в БД, если меньше, то выводим, а если больше, то не выводим, а удаляем эту запись.
Так вот как же так время то сложить, вычесть? У меня не получается...
И какое время лучше использовать (mktime(); ...?).

Заранее благодарен!
 

RomikChef

Guest
Это можно сделать прямо в запросе.
идем в мануал по mysql и смотрим date and time functions
 

Sirius

PHP+MySQL=LOVE
Советую почитать мануал MySQL. Там очень много встроенных полей содержащих дату, и очень много операций связанных с датой(сложение, вычитание и т.д.).
 

Yuriy_S

-=PHP-Club=-
круто! :)
DATE_ADD(date, INTERVAL expr type);
ADDDATE(date, INTERVAL expr type);
Думаю это мне подойдет!
Спасибо!
 

Yuriy_S

-=PHP-Club=-
хех, манул на www.mysql.com огромный! Только вот там нету функции (я вроде все просмотрел) для вычитания времени...
И все же, какой формат времени лучше использовать для этой цели?
И ещё вот, забыл сначала спросить, как бы если юзер будет туда сюда по сайту гулять, то будут все время же писаться данные в базу.. так что ли?

p.s Если можно, то напишите ссылочку плиз...
 

RomikChef

Guest
ты сам только что дал название функции. Или у тебя развоение личности? Кто писал предыдущий пост?

формат времени - любой, поддерживаемый mysql
 

Кай

Guest
Если я правильно тебя понял, то ответ прост (для PHP):
текущее время - это time(), а плюс пять минут это time()+300
300 секунд = пять минут
 

Yuriy_S

-=PHP-Club=-
ок. Спасибо всем, кто принимал участие в топике.
Буду юзать time() или mktime() ;)
 

Yuriy_S

-=PHP-Club=-
вот написал скрипт, который работает!
PHP:
$zap4=mysql_query("SELECT ip FROM activ_user WHERE ip='$ip'", $connect);
$row2=mysql_fetch_array($zap4);
$ipuser=$row2['ip'];
$tim=mktime();
if($ip!=$ipuser){
  $zap="INSERT INTO activ_user (vrema, name, forum_name, topic_name, ip) VALUES ('$tim','$name','$forum','$top_name','$ip')";
  $zaq=mysql_query($zap);
} else {
  $zap="UPDATE activ_user set vrema='$tim' WHERE ip='$ip'";
  $zaq=mysql_query($zap);
}
$vrm2=$tim-180;
$zap2="DELETE FROM activ_user WHERE vrema < '$vrm2'";
$zaq3=mysql_query($zap2);
echo "ЩАс на сайте: ";
$zap3=mysql_query("SELECT * FROM activ_user", $con);
while($row=mysql_fetch_array($zap3)){
  echo $row['name'];
}
Посмотрите люди добрые, и скажите, не будет ли тормозов с таким кол-вом запросов?
 

RomikChef

Guest
Юра, можно тебя попросить самого добавлять теги [рhр] и [/рhр] перед и после кода?
Спасибо.
 

Yuriy_S

-=PHP-Club=-
эх... как нехочется поднимать этот вопрос опять...
Вопрос для профессионалом легкий.
В общем у меня все отлично работает, записывается, поазывается и удаляется! Но, есть небольшая проблемка:
когда пользователь заходит на страницу, то в базу пишется его имя ( если он зареген) + куда зашел и время. Затем чуть ниже в скрипте я вывожу все записи из базы (то есть кто на сайте), и, как странно, с первого раза не выводится имя того кто зашел (но запись добавлена), стоит только раз обновить - и все ок! Может подскажете, как сделать, что бы выводилось имя сразу как пользователь зашел на сайт?
p.s Сначала в скрипте я пишу в БД данные, затем вывожу их все, и потом удаляю те, у которых время меньше.
Спасибо!
 

RomikChef

Guest
учись отлаживать свои скрипты сам.
выводи на экран все знавения все перменные, которые скрипт сравнивает, и смотри глазами.
 
Сверху