У меня есть таблица 'viewlogs', которая формируется из трех полей: ViewLogId
, VideoId
и UserId
. ViewLogId
имеет первичный ключ и значение AUTO_INCREMENT
. Когда пользователь смотрит видео, его значение увеличивается. Когда пользователь смотрит одно и то же видео, увеличивается viewLogId
, но я хочу, чтобы это значение увеличивалось только один раз и однозначно. Как исправить эту проблему. Я прикрепил картину стола.Количество просмотров для каждого пользователя
Я использовал следующий код PHP для обновления view_counts в «видео» таблицы. Вышеприведенное изображение относится к таблице viewlogs.
public function updateStatistics($videoId, $fieldName, $userId)
{
$this->db->reconnect();
$this->db->trans_begin();
$this->db->query("UPDATE videos SET {$fieldName}={$fieldName}+1 WHERE VideoId=?", array($videoId));
if ($fieldName == "ViewCount" && $userId > 0) {
$this->db->insert('viewlogs', array('UserId' => $userId, 'VideoId' => $videoId, 'ViewDateTime' => date('Y-m-d H:i:s')));
}
if ($this->db->trans_status() === false) {
$this->db->trans_rollback();
return false;
} else {
$this->db->trans_commit();
return true;
}
return false;
}
Не могли бы вы подробнее рассказать о проблеме? потому что здесь нет проблемы – nilesh
Возможный дубликат [Как вставить, если не существует "в MySQL?] (http://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in- mysql) – JNevill
@nilesh Я хочу, чтобы ViewLogId для того же UserId с тем же VideoId не был изменен. – RoboticEng