Используйте IF ЗАЯВЛЕНИЕ с INSERT IGNORE

У меня есть система голосования, которую пользователи могут использовать для голосования по сообщениям. Дело в том, что они не могут голосовать дважды на одном и том же посте. И это хорошо. Я сделал это так:

$query  = "INSERT IGNORE INTO vote_id (vote, postid, userid)
VALUES ('1', '{$postid}', '{$userid}')";
$result = mysqli_query($db, $query);
header('Location: index.php');

(The $ дб моя переменная, которая подключается к базе данных).

Они по-прежнему могут нажать на голосование, даже если оно не вставлено в таблицу.
Моя проблема:
Когда он является «ИГНОРИРУЙТЕ«они не должны быть в состоянии щелкнуть.

Мой вопрос:
Как мне отделить ВСТАВИТЬ а также ИГНОРИРУЙТЕ, так что я могу использовать ИГНОРИРУЙТЕ в ЕСЛИ заявление? Или любым другим способом, который может изменить макет страницы.

Заранее спасибо! Действительно борется с этим.

0

Решение

Без кода, показывающего «голосование», трудно сказать, но если это кнопка, то вы можете просто запросить SELECT для user_id а также post_id, и если он найдет хотя бы одну строку, то добавьте disabled на кнопку. Как это:

<button name="vote" value="1" disabled>Vote</button>

Или просто не отображать что-либо «голосовать» вообще, когда запрос возвращает строки.

Другой способ — проверить сессию, но это позволит тому же пользователю снова голосовать после повторного входа.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]