@AlikDex

Странная ошибка в mysql запросе. Не могу понять как исправить. Поможете?

$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 или более, то вполне нормально отрабатывает.
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
He11ion
@He11ion
PHP-monkey
...
SELECT * FROM (SELECT '{$id}' AS id , '{$formated_ip}' AS ip  -- and so on...
...

Но код странный.

Ну и да - проблема не в user_id, конечно же.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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