Задать вопрос
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
			)
		);
	}
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
@cema93
WordPress разработчик
php yне сможет определить сколько времени пользователь просматривает страницу. тут надо использовать ajax
Ответ написан
Комментировать
Expany
@Expany
$this->get('skill');
Все ответы бесполезны (ИМХО).
Вполне вероятно, что пусть и не очень хорошо, но при визите юзера(предположим авторизованного) в базу записывается текущий TIMESTAMP, при попытке манипуляций вызывающих db_insert, будет вызвана аналогичная процедура получения TIMESTAMP с целью вычислить разность по времени, и если результирующее больше или равно требуемому, выполнить запись в базу, иначе можно сообщить пользователю что еще рановато.

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽