$formated_ip = inet_pton ( $_SERVER['REMOTE_ADDR'] ); // запаковываем айпишник юзера.
$currentTime = time();
$elapsedTime = $currentTime - 900; // повторно лайкнуть сможет через 15 минут после того, как сделал лайк.
if( $is_logged ) { // если зареган, проверяем лайк юзера по иду
$user_id = (int) $member_id['user_id'];
$where = "member='{$user_id}'";
} else { // если нет, смотрим айпи + время последнего лайка (для мобил)
$user_id = 0;
$where = "ip='" . $formated_ip . "' AND time>={$elapsedTime}"; // вап
}
// если записи нет, то вставляем новую. По результатам апдейтим счетчик в дальнейшем.
$sql = "INSERT INTO `" . PREFIX . "_like_log` (news_id, ip, member, post_type, like_type, time)
SELECT * FROM (SELECT '{$id}', '{$formated_ip}', '{$user_id}', '{$post_type}', '{$setLike}', '{$currentTime}') AS tmp
WHERE NOT EXISTS (
SELECT news_id
FROM `" . PREFIX . "_like_log`
WHERE news_id='$id' AND post_type={$post_type} AND {$where}
) LIMIT 1";
Вот, суть в чем. Выдает ошибку "
Duplicate column name '0'", если юзер ид меньше 7. Если же =7 или более, то вполне нормально отрабатывает.