Приветствую всех!
Есть таблица `online`, в которой 3 столбца: `id`, `user` и `last_action`.
`user` - id юзера, `last_action` - время последней активности в формате DATETIME.
Обновление записей происходит при каждом обновлении страницы и раз в 5 минут по аяксу. Можно ли в один запрос проверить, есть ли уже строка с этим юзером в таблице и если нет, то добавить, а если есть, то просто обновить поле `last_act`?
Сейчас делаю в 2 этапа:
CODE ( PHP):
скопировать код в буфер обмена
$query=$db->query("SELECT `id` FROM `online` WHERE `user`=".$user_id." LIMIT 1"); if(!$query->rowCount()){ $db->exec("INSERT INTO `online`(`user`,`last_act`) VALUES(".$user_id.",'".date('Y-m-d H:i:s')."')"); } else { $db->exec("UPDATE `online` SET `last_act`='".date('Y-m-d H:i:s')."' WHERE `user`=".$user_id." LIMIT 1"); }
Коряво и громоздко. Подскажите более изящное решение.(Отредактировано автором: 09 Апреля, 2015 - 15:30:32)
|