2010-06-14 6 views
1

Я искал здесь информацию о SO и Googling, однако я не могу найти ничего, что бы соответствовало моему описанию.Через 30 секунд обновите базу данных MYSQL

Что я хочу сделать, это обновить базу данных, если страница не обновилась через 30 секунд. Я хочу отправить электронное письмо человеку с содержимым формы {, представленной другим пользователем} (я могу это сделать), если человек НЕ посетил страницу (я могу сделать это) за последние 30 секунд.

То, что я пытался сделать, - это сделать страницу, которую нужно посещать обновлять каждые 30 секунд, и поэтому я решил, что если бы я сделал что-то вроде 31 секунды, отредактируйте базу данных (поэтому, если обновленная страница не обновилась, редактирование базы данных).

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

Большая картинка: Я пытаюсь сделать «дежурную» вещь, так что если человек не будет активно смотреть на страницу, они получат по электронной почте все содержимое формы. Страница будет содержать таблицу всех введенных результатов формы.

+0

звучит страшно ... – Artefacto

ответ

4

Вы можете обновить базу данных, создав запись с меткой времени каждый раз, когда пользователь обновит страницу. Затем у вас может быть рабочий PHP, который выглядит регулярно в базе данных, если метка времени старше 30 секунд и запускается по электронной почте.

+0

Ах да, это более простой способ сделать это. – Sam

+0

Thankyou. У меня есть дата. \t \t \t \t \t дата ("m/d/Y h: i: s a", time()); Как я могу добавить 30 секунд? – Sam

+0

Я думаю, что я сделал бы все время в Mysql, что даст вам больше согласованности: при обновлении вы делаете что-то вроде «update last_refresh set timestamp = NOW(), где user = ...», и чтобы проверить, нужно отправить сообщение, которое вы делаете », выберите пользователя из last_refresh, где DATEDIFF (NOW(), timestamp)> (30/(3600 * 24))» (непроверенный, я больше человек Postgresql :)) –

1

я не могу предоставить PHP решение для серверной стороны части работы. Но в основном вам нужно настроить таймер javascript (например, тайм-аут jquery), а через 30 секунд сделать вызов ajax, который будет делать то, что вы хотите на сервере (сохранить что-то в db, отправить электронную почту и т. Д.).

Надеюсь, у меня есть ваша мысль, и мой совет поможет вам как-то.

0

Я хотел бы предложить использовать JavaScript, как это:
window.setTimeout("location.reload(true);", 3000);

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

+0

Youu может сделать это без загрузки страницы – Lizard

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