bokovua
@bokovua
Любитель

Как Записать в базу данных если выполнено условие?

Подскажите пожалуйста, как скорректировать функцию, а именно записать данные в базу, чтобы она срабатывала только при условии того, что человек провел на странице энное количество времени.

private function db_insert( $id, $type, $period, $count = 1 ) {
		global $wpdb;

		$count = (int) $count;

		if ( ! $count ) {
			$count = 1;
		}

		return $wpdb->query(
			$wpdb->prepare( "
				INSERT INTO " . $wpdb->prefix . "post_views (id, type, period, count)
				VALUES (%d, %d, %s, %d)
				ON DUPLICATE KEY UPDATE count = count + %d", $id, $type, $period, $count, $count
			)
		);
	}
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 3
@cema93
WordPress разработчик
php yне сможет определить сколько времени пользователь просматривает страницу. тут надо использовать ajax
Ответ написан
Комментировать
Expany
@Expany
$this->get('skill');
Все ответы бесполезны (ИМХО).
Вполне вероятно, что пусть и не очень хорошо, но при визите юзера(предположим авторизованного) в базу записывается текущий TIMESTAMP, при попытке манипуляций вызывающих db_insert, будет вызвана аналогичная процедура получения TIMESTAMP с целью вычислить разность по времени, и если результирующее больше или равно требуемому, выполнить запись в базу, иначе можно сообщить пользователю что еще рановато.

Что до ответа Сёмки, то тоже имеет место быть, вынести подобную логику стоило бы на плечи js.
Ответ написан
Комментировать
alekstar79
@alekstar79
Оффтоп - global - evil... А по сути, причем тут функция, которая что-то пишет в базу? Наверное должно больше волновать, как ты собираешься определять время, проведенное пользователем на странице!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы